码迷,mamicode.com
首页 > 其他好文 > 详细

dns + nginx实现负载均衡

时间:2016-11-30 23:40:56      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:nginx 负载均衡 dns

一 搭建环境说明:

服务器公网地址

用途

服务器内网地址

123.56.x.92

Nginx负载兼web服务

10.171.132.57

123.57.x.176

Nginx负载兼Web服务

10.172.235.86




两台服务器上面分别有三个站点,web,app,h5

PC站前端    nginx  80

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 即可。


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

dns + nginx实现负载均衡

标签:nginx 负载均衡 dns

原文地址:http://825536458.blog.51cto.com/4417836/1878212

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!