首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
SQL-Server
›
NGINX--HTTP&TCP负载均衡
返回列表
发新帖
NGINX--HTTP&TCP负载均衡
[复制链接]
发表于 2025-11-10 06:22:52
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
一、HTTP
负载
均衡
1、根本先容
在多应用实例中,通常可以用nginx来做
负载
均衡器来分发流量,以到达进步应用吞吐量、低沉时延、调优
性能
、提供容错性等。
2、http
负载
均衡最简单的设置如下
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
upstream myapp2 {
server srva1.example.com;
server srva2.example.com;
server srva3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
复制
代码
3、nginx中支持的
负载均衡
的方法
1、 round-robin 轮询,默认的
负载均衡
的方法,轮询分发给差异的服务,假如不设置权重的话,会均发给鄙俚服务
2、 least-connected 下一个哀求会分发给有最少生动毗连的服务
3、 ip-hash 一个hash函数, 会盘算下一个哀求会分配给到哪一个
服务器
使用方法如下:
upstream myapp1 {
ip-hash
server ip1;
server ip2;
server ip3;
}
upstream myapp2 {
least_conn;
server ip1;
server ip2;
server ip3;
}
//轮询实现
upstream myapp3 {
server ip1;
server ip2;
server ip3;
}
复制
代码
4、权重的设置(weight)
在以round-robin(轮询)方法实现的
负载均衡
中,假如不设置weight(权重),nginx会将哀求均发给鄙俚服务。nginx也提供了一种权重设置方法,如下:
upstream myapp3 {
server ip1 weight=3 ;
server ip2;
server ip3;
}
复制
代码
如上设置所示,当有5个哀求进来的时间,nginx会将3个哀求发给ip1,一个哀求发给ip2,另一个哀求发给ip3。即60%的流量哀求发给ip1,20%的流量哀求发给ip2,20%的流量哀求发给ip3
五、康健查抄(Health checks)及语法先容
http {
upstream dynamic {
zone upstream_dynamic 64k;
server backend1.example.com weight=5;
server backend2.example.com:8080 fail_timeout=5s slow_start=30s;
server 192.0.2.1 max_fails=3;
server backend3.example.com resolve;
server backend4.example.com service=http resolve;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://dynamic;
health_check;
}
}
}
复制代码
Syntax: server address [parameters];
Default: —
Context: upstream
二、TCP负载均衡
1、简介
该ngx_stream_core_module模块是从1.9.0
版本
才被引入进来,该模块并不被默认安装,以是假如要使用该模块的
功能
,在编译的时间必要加上 --with-stream 设置参数
configure ... --with-stream ...
复制代码
2、TCP负载均衡最简单的设置
worker_processes auto;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
stream {
upstream backend {
hash $remote_addr consistent;
server backend1.example.com:12345 weight=5;
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
upstream dns {
server 192.168.0.1:53535;
server dns.example.com:53;
}
server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
server {
listen 127.0.0.1:53 udp reuseport;
proxy_timeout 20s;
proxy_pass dns;
}
server {
listen [::1]:12345;
proxy_pass unix:/tmp/stream.socket;
}
}
复制代码
回复
使用道具
举报
返回列表
浏览过的版块
.Net
Oracle
数据仓库与分析
莫张周刘王
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表