Nginx部署反向代理集群,Nginx负载均衡,健康检查,加权轮询

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。Nginx部署反向代理集群,Nginx负载均衡,健康检查,加权轮询,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

部署环境

节点 IP地址 角色
nginx 192.168.44.173 反向代理服务器
web1 192.168.44.174 网站1(nginx网站)
web2 192.168.44.175 网站2(nginx网站)

部署介绍

nginx安装,web网页位置和内容参考上一篇
https://blog.csdn.net/qq_44659804/article/details/126685364?spm=1001.2014.3001.5502

nginx安装
同节点nginx,节点web1,节点web2。
web网页位置和内容
web1网页文件在/data/nginx/index.html,内容为 web1_test~~~
web2网页文件在/data/nginx/index.html,内容为 web2_test~~~

此处部署仅对配置文件做修改,操作均在nginx安装目录进行

部署web1节点

关闭服务

[root@web1 nginx]# sbin/nginx -s stop

还原配置文件

[root@web1 nginx]# cp conf/nginx.conf.default conf/nginx.conf
cp:是否覆盖"conf/nginx.conf"yes

修改配置文件

匹配路径为/webs
网页在/data/nginx

[root@web1 nginx]# vim conf/nginx.conf
 33     #gzip  on;
 34
 35     server {
 36         listen       80;
 37         server_name  localhost;
 38
 39         #charset koi8-r;
 40
 41         #access_log  logs/host.access.log  main;
 42
 43         location / {
 44             root   html;
 45             index  index.html index.htm;
 46         }
 47         location /webs {
 48             alias /data/nginx;
 49            # root   html;
 50            # index  index.html index.htm;
 51         }
 52
 53         #error_page  404              /404.html;

启动服务

[root@web1 nginx]# sbin/nginx  -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@web1 nginx]# sbin/nginx
[root@web1 nginx]# ss -utnlp | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=1356,fd=6),("nginx",pid=1355,fd=6))

本机访问测试

[root@web1 nginx]# curl 192.168.44.174/webs/
 web1_test~~~

部署web2节点

关闭服务

[root@web2 nginx]# sbin/nginx -s stop

还原配置文件

[root@web2 nginx]# cp conf/nginx.conf.default conf/nginx.conf
cp:是否覆盖"conf/nginx.conf"yes

修改配置文件

匹配路径为/webs
网页在/data/nginx

[root@web2 nginx]# vim conf/nginx.conf
 33     #gzip  on;
 34
 35     server {
 36         listen       80;
 37         server_name  localhost;
 38
 39         #charset koi8-r;
 40
 41         #access_log  logs/host.access.log  main;
 42
 43         location / {
 44             root   html;
 45             index  index.html index.htm;
 46         }
 47
 48         location /webs {
 49             alias /data/nginx;
 50            # root   html;
 51            # index  index.html index.htm;
 52         }
 53         #error_page  404              /404.html;

启动服务

[root@web2 nginx]# sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@web2 nginx]#  ss -utnlp | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=1320,fd=6),("nginx",pid=1319,fd=6))

本机访问测试

[root@web2 nginx]# curl 192.168.44.175/webs/
web2_test~~~

部署nginx节点

关闭服务

[root@nginx nginx]# sbin/nginx -s stop

还原配置文件

[root@nginx nginx]# cp conf/nginx.conf.default conf/nginx.conf
cp:是否覆盖"conf/nginx.conf"yes

修改配置文件

增加集群名字叫web_test
匹配到/webs,把请求方向代理到集群web_test

[root@nginx nginx]# vim conf/nginx.conf
 33     #gzip  on;
 34     upstream web_test {
 35         server 192.168.44.174:80  max_fails=2 fail_timeout=30 weight=2;	#配置健康检查,检测两次如果失败,则认为集群中的主机故障,之后等待30秒再次测试。权重设置为2。
 36         server 192.168.44.175:80  max_fails=2 fail_timeout=30;	#配置健康检查,检测两次如果失败,则认为集群中的主机故障,之后等待30秒再次测试。权重设置默认为1。
 37     }
 38     server {
 39         listen       80;
 40         server_name  localhost;
 41
 42         #charset koi8-r;
 43
 44         #access_log  logs/host.access.log  main;
 45
 46         location / {
 47             root   html;
 48             index  index.html index.htm;
 49         }
 50
 51        location /webs {
 52        proxy_pass http://web_test;
 53        }
 54
 55         #error_page  404              /404.html;

启动服务

[root@nginx nginx]# sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx nginx]# ss -utnlp | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                                                                                               

访问测试

web服务全部开启测试

访问10次,访问结果web1为web2的两倍

[root@nginx nginx]# for i in {1..10}
> do
> echo "第$i次访问"
> curl 192.168.44.173/webs/
> done
第1次访问
 web1_test~~~
第2次访问
web2_test~~~
第3次访问
 web1_test~~~
第4次访问
 web1_test~~~
第5次访问
web2_test~~~
第6次访问
 web1_test~~~
第7次访问
 web1_test~~~
第8次访问
web2_test~~~
第9次访问
 web1_test~~~
第10次访问
 web1_test~~~
#访问结果大致为2:1

关闭web1服务测试

把web1服务关闭再次访问,此时只有web2能被访问到,服务未中断。

[root@web1 nginx]# sbin/nginx  -s stop
[root@web1 nginx]# ss -utnlp | grep nginx
#本机无法访问
[root@web1 nginx]# curl 192.168.44.174/webs/
curl: (7) Failed connect to 192.168.44.174:80; 拒绝连接

#通过nginx代理访问,web1服务已关闭,只有web2

[root@nginx nginx]# for i in {1..10}; do echo "第$i次访问"; curl 192.168.44.173/webs/; done
第1次访问
web2_test~~~
第2次访问
web2_test~~~
第3次访问
web2_test~~~
第4次访问
web2_test~~~
第5次访问
web2_test~~~
第6次访问
web2_test~~~
第7次访问
web2_test~~~
第8次访问
web2_test~~~
第9次访问
web2_test~~~
第10次访问
web2_test~~~

再次开启web1服务测试

开启web1服务,健康检查通过后,继续对外提供服务
把web2服务开启,本机立即可以访问,因为健康检查的间隔时间使30秒,30秒后可通过nginx代理访问

[root@web1 nginx]# sbin/nginx
[root@web1 nginx]# ss -utnlp | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=1809,fd=6),("nginx",pid=1808,fd=6))
[root@web1 nginx]# curl 192.168.44.174/webs/
 web1_test~~~

通过nginx代理访问

[root@nginx nginx]# for i in {1..10}; do echo "第$i次访问"; curl 192.168.44.173/webs/; done
第1次访问
web2_test~~~
第2次访问
 web1_test~~~
第3次访问
web2_test~~~
第4次访问
 web1_test~~~
第5次访问
 web1_test~~~
第6次访问
web2_test~~~
第7次访问
 web1_test~~~
第8次访问
 web1_test~~~
第9次访问
web2_test~~~
第10次访问
 web1_test~~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154051.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!