|
一 搭建环境说明:
服务器公网地址
| 用途
| 服务器内网地址
| 123.56.x.92
| Nginx负载兼web服务
| 10.171.132.57
| 123.57.x.176
| Nginx负载兼Web服务
| 10.172.235.86
| | | | 两台服务器上面分别有三个站点,web,app,h51 PC站前端 nginx 80
2 H5站前端 nginx+tomcat 28180
3 app客户端 nginx+tomcat 28543
负载均衡实现方式和前提准备用dns轮询解析来实现负载均衡,并且在两台server上面还同时启用了Nginx负载均衡,两台服务器是互为负载。前提是两台web服务端的网站内容一致。
二 配置文件更改:
1 三个站点具体配置详情
更改nginx负载服务器上面各个站点的端口
##web的配置文件
1
2
3
4
5
6
7
| server
{
listen 10.171.132.57:81;
server_name www.hu.com;
index index.html index.htm;
root /data/wwwroot/www.hu.com/;
}
|
##h5配置文件
1
2
3
4
5
6
7
| server
{
listen 10.171.132.57:82;
server_name m.hu.com;
index index.html index.htm;
root /data/wwwroot/m.hu.com/;
}
|
## app配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| 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端
1
2
3
4
5
6
7
8
9
10
11
12
13
| 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端
1
2
3
4
5
6
7
8
9
10
11
12
13
| 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端
1
2
3
4
5
6
7
8
9
10
11
12
13
| 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个站点同时启动
|
|
|