当前位置: 首页 >服务端 > Nginx 负载平衡 支持域名转发的方法

Nginx 负载平衡 支持域名转发的方法

转自:http://chazor.org/html/74.html

在官方提供的LoadBalanceExample基础上,修改

http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}

server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://myproject;
}
}
}

加几行

http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}

server {
listen 80;
server_name www.domain.com;
location / {
proxy_store off;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://myproject;
}
}
}

在Nginx中的默认Proxy是只能对后面Real Server做端口转发的,而不能做域名转发。如果想使用Nginx对后端是同一IP、同一端口 转发不同的域名则需要配置Nginx Proxy。

    这个是因为默认情况下:
    proxy_set_header Host $proxy_host;

    这样就等于前端输入域名后到nginx这里直接转换成IP进行转发了。
    于是我们需要修改proxy_set_header的参数。

    proxy_set_header Host $http_host;

    下面这个例子中backend1权重为5,其他默认为1,最大失效次数3次,如果30秒内没有响应就认为是失效了。

    upstream lb  {
      server cache.opencfg.com weight=5;
      server app.opencfg.com max_fails=3  fail_timeout=30s;
    }

    server {
       listen 80;
       server_name  www.opencfg.com;
       location  /     {
         proxy_store off;
         proxy_redirect  off;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header Host $http_host;
         proxy_pass http://lb; 
       }
    }

来源链接:https://www.cnblogs.com/ayao/p/nginx.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113180.html

标签:Nginx
分享给朋友:

“Nginx 负载平衡 支持域名转发的方法” 的相关文章