nginx的proxy_pass到$host的问题

做了反向代理后,由于代理服务器的nginx配置文件里有301跳转导致我的后端ajax程序有问题了,所以需要用到下面的规则过滤掉我的反向代理

if ( $uri !~ ^/bbs/(.*)/?$ ) { //判断如果不是我的服务
    set $rule 1$rule;
}

if ( $uri ~* [/]+(\w+)([-](\w+))?$ ) { //原来的301跳转
    set $rule 2$rule;
}

if ( $rule = "21" ) { //原来的条件,并且不是我的服务那么执行原来的301跳转,这样我的后端服务的ajax请求就不会报错了。
    rewrite ^ $uri/ permanent;
    break;
}

 

 

 

http://blog.sina.com.cn/s/blog_57c70e190100xzsr.html

 

设置proxy_host防止跨域

http://blog.csdn.net/felix_yujing/article/details/51682655 

 

反向代理后origin header丢失的问题

http://ruby-china.org/topics/33409

 

 

反向代理机器需要配置host

mwbs.test.com 192.168.0.11

 

nginx的server m.test.com配置下添加如下配置:

 

location /bbs/ {
    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_pass http://mwbs.test.com/;
}

并且配置下只能有这一个location,否则其他location会有优先级的问题导致该配置失效

当访问http://m.test.com/bbs/forum/index是其实就相当于访问了http://mwbs.test.com/forum/index

 

posted on 2017-06-21 19:57  dongruiha  阅读(5924)  评论(0编辑  收藏  举报

导航