工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

nginx单一端口域名转发

对于后端是同一端口多域名转发的nginx proxy。在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发。
这个是因为默认

 
1 proxy_set_header Host $proxy_host;

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

 
1 proxy_set_header Host $http_host;

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

 
01 upstream lb  {
02 server backend1.test.com weight=5;
03 server backend2.test.com:8080 max_fails=3  fail_timeout=30s;
04 server unix:/tmp/test3;
05 }
06 server {
07         listen 80;
08         server_name  lb.test.com;
09         location  /     {
10         proxy_store off;
11         proxy_redirect  off;
12         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13         proxy_set_header X-Real-IP $remote_addr;
14         proxy_set_header Host $http_host;
15         proxy_pass http://lb;
16         }
17 }

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):