您的位置:首页 > 运维架构 > Nginx

dns + nginx实现负载均衡

2016-11-30 16:33 627 查看
一 搭建环境说明:

服务器公网地址
用途
服务器内网地址
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都改成[b]10.172.235.86 即可。[/b]

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服务了
同样在176上面编辑一个配置文件 vi /usr/local/nginx/conf/vhost/ld.conf跟92的一模一样
这样不管是哪个nginx服务坏了,都可以工作,既实现了负载均衡也实现了高可用

三 验证:
比如当用户访问www.hu.com 这个站点的时候,通过DNS轮询到 Nginx前端,再根据你的配置甩向不同upstream(服务器)如下图:




测试停掉其中一台服务器的nginx看是否可以正常工作
缺点:如果重启nginx会造成3个站点同时启动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  负载均衡 nginx dns