设为首页 收藏本站
查看: 670|回复: 0

[经验分享] dns + nginx实现负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-1 08:46:00 | 显示全部楼层 |阅读模式
一 搭建环境说明:

服务器公网地址
用途
服务器内网地址
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(服务器)如下图:
wKioL1g-jiryiD6uAAD7ncJjpbM140.jpg

测试停掉其中一台服务器的nginx看是否可以正常工作
缺点:如果重启nginx会造成3个站点同时启动


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307924-1-1.html 上篇帖子: nginx访问web界面验证 下篇帖子: NGINX按天切割日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表