我是靠谱客的博主 烂漫汽车,最近开发中收集的这篇文章主要介绍nginx同IP、同端口、不同域名时的转发,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用nginx时对于upstream的server的测试中发现,nginx默认对其使用的是基于IP的转发,这就意味着对于同IP、同端口、不同域名时无法进行转发。

在官方WIKI:http://wiki.nginx.org/NginxHttpUpstreamModule没有查到相应的解决方案。
在GOOGLE上查到多篇几乎无人问同样的问题,最终发现Timo的这篇文章:nginx单一端口域名转发,也进一步证实了yaosansi的猜测是正确的.
以下引用了Timo的原文中的解决方案:

对于后端是同一端口多域名转发的nginx proxy。在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发。
这个是因为默认情况下:
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 yaosansi.com weight=5; 
server www.yaosansi.com max_fails=3  fail_timeout=30s; 
server unix:/tmp/test3; 

server { 

         listen 80; 
         server_name  www.yaosansi.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/huangjingzhou/articles/2155895.html

最后

以上就是烂漫汽车为你收集整理的nginx同IP、同端口、不同域名时的转发的全部内容,希望文章能够帮你解决nginx同IP、同端口、不同域名时的转发所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部