2022-06-05 23:35阅读: 31评论: 0推荐: 0

Nginx 负载均衡

Nginx 负载均衡模块说明

  • ngx_http_proxy_module :proxy 代理模块,用于把请求后抛给服务器节点或 upstream 服务器池。
  • ngx_http_upstream_module: 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查。节点检查,默认基于端口探测

Nginx 负载均衡配置

安装ngx

# 安装nginx
yum -y install gcc pcre-devel zlib-devel
yum install openssl openssl-devel -y

  # - gcc: 源码编译工具 
  # - pcre-devel: nginx url_rewrite 功能提供包 
  # - zlib-devel: nginx 压缩功能提供包


useradd -u 1111 -s /sbin/nologin nginx -M
ngx_version='nginx-1.19.3'
wget http://nginx.org/download/${ngx_version}.tar.gz -P /usr/src
cd /usr/src
tar xf nginx-1.19.3.tar.gz
cd nginx-1.19.3/
./configure --user=nginx --group=nginx --prefix=/usr/local/${ngx_version}/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
make -j2 && make install 
ln -s /usr/local/${ngx_version} /usr/local/nginx
/usr/local/nginx/sbin/nginx

模块说明:https://nginx.org/en/docs/http/ngx_http_upstream_module.html

负载均衡简单配置

# 负载均衡器配置
# upstream:模块 负载均衡池
# backend:负载均衡池的名称
# weight 权重;一共6个请求,分发给.1 一个,分发给.2 五个;
upstream backend {
    server 10.0.0.1:80      weight=1;
    server 10.0.0.2:80      weight=5;
}

# server 标签
# / 默认请求,分发给 backend 负载均衡池池;
server {
    listen    80;
    server_name    aaa.com; 
    location / {
        proxy_pass http://backend;
    	# 默认 反向代理 向后请求,请求头中不携带 host,后端节点机有多个虚拟主机时的关键配置;
    	# set_header 往后转发,请求头增加 host 字段
    	proxy_set_header Host $host;
    	# 向后请求时设置 X-Forwarded-For 为 $remote_addr;这样后端在请求头中就可以根据 X-Forwarded-For 获得客户端ip
        proxy_set_header X-Forwarded-For $remote_addr;

    }
}

upstream 讲解

ngx_http_upstream_module
官方地址:https://nginx.org/en/docs/http/ngx_http_upstream_module.html

Server 标签 参数说明
server 10.0.10.8:80 负载均衡后面的 RS 配置,可以是 P 或域名,如果端口不写,默认是 80 端口。高并发场景下,P 可换成域名,通过 DNS 做负载均衡。
weight=1 代表服务器的权重,默认值是 1。权重数字越大表示接受的请求比例越大。
max_fails=1 Ngx 尝试连接后端主机失败的次数,这个数值是配合 proxy_next_upstream, fastcg_next_upstream 和 memcached_next_upstream 这三个参数来使用的,当 Nginx 接收后端服务器返回这三个参数定义的状态码时,会将这个请求转发给正常工作的后端服务器,例如 404、502、503。Max_fails 的默认值是 1; 企业场景:建议 2-3 次。京东 1 次,蓝汛 10 次,根据业务需求去配置。
backup 热备配置(S 节点的高可用),当前面激活的 RS 都失败后会自动启用热备 S。这标志着这个服务器作为备份服务器,若主服务器全部宕机了,就会向它转发请求;注意,当负载调度算法为 ip hash 时,后端服务器在负载均衡调度中的状态不能是 weight 和 backup。
fail_timeout=10s 在 max_fails 定义的失败次数后,距离下次检查的间隔时间,默认是10s;如果 max fails 是 5,它就检测 5 次,如果 5 次都是 502。那么,它就会根据 fail_timeout 的值,等待 10s 再去检查,还是只检查一次,如果持续502,在不重新加载nginx配置的情况下,每隔10s都值检测一次。常规业务2-3秒比较合理,比如京东3s,蓝汛3s,可根据业务需求去配置
down 这标志着服务器永远不可能用,这个参数可配合 ip_hash 使用。

提示:以上的参数和专业的haproxy参数很类似,但是不如haproxy的参数易懂。

upstream 配置案例

# nginx upstream 默认会监测节点状态,把不好的节点,踢出去
upstream blog_server_pool {
    server 10.0.0.1;	# 这一行和下一行是等价的
    server 10.0.0.2:80 weight=1 max_fails=1 fail_timeout=10s;	# 这一行标签和上一行是等价的,慈航多余的部分就是默认配置,不写也可以;
    # server 10.0.0.3:80 weight=1 max_fails=2 fail_timeout=20s backup;
}
posted @   Star-Hitian  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 海阔天空 Beyond
  2. 2 此生过半 Audio artist
  3. 3 让我欢喜让我忧 Audio artist
  4. 4 P.I.M.P. Audio artist
  5. 5 Extasy Audio artist
海阔天空 - Beyond
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 黄家驹

作曲 : 黄家驹

编曲 : Beyond/梁邦彦

制作人 : Beyond/梁邦彦

今天我 寒夜里看雪飘过

怀着冷却了的心窝漂远方

风雨里追赶 雾里分不清影踪

天空海阔你与我

可会变 (谁没在变)

多少次 迎着冷眼与嘲笑

从没有放弃过心中的理想

一刹那恍惚 若有所失的感觉

不知不觉已变淡

心里爱 (谁明白我)

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

今天我 寒夜里看雪飘过

今天我 寒夜里看雪飘过

怀着冷却了的心窝漂远方

风雨里追赶 雾里分不清影踪

天空海阔你与我

可会变 (谁没在变)

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

仍然自由自我 永远高唱我歌

仍然自由自我 永远高唱我歌

走遍千里

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

背弃了理想 谁人都可以

哪会怕有一天只你共我

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

录音 : Shunichi Yokoi

录音 : Shunichi Yokoi

混音 : Shunichi Yokoi

录音室 : Greenbird St./Tokyu Fun St./West Side St.(Tokyo/From Jan/to Apr./1993)

母带工程师 : Setsu Hisai at Tokyu Fun St.

弦乐 : 桑野圣乐团 (Kuwano Strings)

OP : Amuse Inc. & Fun House Inc.

SP : Amuse H.K. Ltd.