一 搭建环境说明:
服务器公网地址 | 用途 | 服务器内网地址 |
123.56.x.92 | Nginx负载兼web服务 | 10.171.132.57 |
123.57.x.176 | Nginx负载兼Web服务 | 10.172.235.86 |
1 PC站前端 nginx 80
2 H5站前端 nginx+tomcat 28180
3 app客户端 nginx+tomcat 28543
准备用dns轮询解析来实现负载均衡,并且在两台server上面还同时启用了Nginx负载均衡,两台服务器是互为负载。前提是两台web服务端的网站内容一致。
二 配置文件更改:
更改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个站点同时启动
本文出自 “渐行渐远” 博客,请务必保留此出处http://825536458.blog.51cto.com/4417836/1878212
原文:http://825536458.blog.51cto.com/4417836/1878212