900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > nginx同IP 同端口 不同域名时的转发

nginx同IP 同端口 不同域名时的转发

时间:2022-01-10 01:24:11

相关推荐

nginx同IP 同端口 不同域名时的转发

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

在官方WIKI:/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 weight=5;

server max_fails=3 fail_timeout=30s;

server unix:/tmp/test3;

}

server {

listen 80;

server_name ;

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;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。