一 搭建环境说明:
服务器公网地址 |
用途 |
服务器内网地址 |
123.56.x.92 |
Nginx负载兼web服务 |
10.171.132.57 |
123.57.x.176 |
Nginx负载兼Web服务 |
10.172.235.86 |
两台服务器上面分别有三个站点,web,app,h5
1 PC站前端 nginx 80
2 H5站前端 nginx+tomcat 28180
3 app客户端 nginx+tomcat 28543
负载均衡实现方式和前提
准备用dns轮询解析来实现负载均衡,并且在两台server上面还同时启用了Nginx负载均衡,两台服务器是互为负载。前提是两台web服务端的网站内容一致。
二 配置文件更改:
1 三个站点具体配置详情
更改nginx负载服务器上面各个站点的端口
##web的配置文件
server { listen 10.171.132.57:81; server_name www.hu.com; index index.html index.htm; root /data/wwwroot/www.hu.com/; }
##h5配置文件
server { listen 10.171.132.57:82; server_name m.hu.com; index index.html index.htm; root /data/wwwroot/m.hu.com/; }
## app配置文件
server { listen 10.171.132.57:83; server_name s.hu.com; index index.html index.htm; root /data/www/nestpc/; location ^~ /nestservice/ { proxy_pass http://10.171.132.57:28080; proxy_set_header Host $host; proxy_set_header X-Real-IP$remote_addr; proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for; proxy_redirect off; } }
同理
按照上面92的操作,在176上面再操作一次(拷贝文件即可),把10.171.132.57都改成10.172.235.86 即可。
2 Nginx负载端配置详情
在92 上面编辑一个配置文件 vi /usr/local/nginx/conf/vhost/ld.conf
## web端
upstream www{ server 10.171.132.57:81; server 10.172.235.86:81 ; ip_hash; } server { listen 80; server_name www.hu.com; location / { proxy_pass http://www/; proxy_set_header Host $host; } }
## APP端
upstream s{ server 10.171.132.57:83 ; server 10.172.235.86:83 ; ip_hash; } server { listen 80; server_name s.hu.com; location / { proxy_pass http://s/; proxy_set_header Host $host; } }
## h5端
upstream h5{ server 10.171.132.57:82; server 10.172.235.86:82; ip_hash; } server { listen 80; server_name m.hu.com; location / { proxy_pass http://h5/; proxy_set_header Host $host; } }
到此,配置文件已经全部配置完毕,可以重启nginx服务了
三 验证:
比如当用户访问www.hu.com 这个站点的时候,通过DNS轮询到 Nginx前端,再根据你的配置甩向不同upstream(服务器)如下图:
测试停掉其中一台服务器的nginx看是否可以正常工作
缺点:如果重启nginx会造成3个站点同时启动
时间: 2024-10-23 04:09:35