Nginx反向代理的目录访问问题

从昨天就开始纠结了,在做实验的时候,遇到目录访问的问题,如下

前端nginx vhost的设置如下,代理访问后端的192.168.0.37

server
    {
            listen  80;
            server_name  www.proxy.com;
            index index.php index.html index.htm;

            location /test/ {
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_pass http://192.168.0.37;
                proxy_set_header Host 192.168.0.37;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_redirect http://192.168.0.37/test/ /test/;
            }

             access_log /data/logs/weblog/proxy_server.access.log;
}

后端的192.168.0.37在根目录下是有test目录的,该目录下有个index文件,内容为“192.168.0.37 proxy test OK!”

现在的问题是如果在访问www.proxy.com/test/的时候是可以访问的,如下

[root@control_node ~]# curl -I http://www.proxy.com/test/
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Apr 2013 04:22:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 28
Connection: keep-alive
Last-Modified: Wed, 24 Apr 2013 03:09:13 GMT
Accept-Ranges: bytes

 

但是如果访问www.proxy.com/test的话就会301

[root@control_node ~]# curl -I http://www.proxy.com/test
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 24 Apr 2013 04:25:01 GMT
Content-Type: text/html
Content-Length: 178
Location: http://www.proxy.com/test/
Connection: keep-alive

 

我刚开始以为是我前端的proxy_redirect设置有问题,后来修改proxy_redirect多次,均无法达到要求,最后突发奇想,把前端的nginx设成了这样

server
    {
            listen  80;
            server_name  www.proxy.com;
            index index.php index.html index.htm;

            location /test {
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_pass http://192.168.0.37/test/;
                proxy_set_header Host 192.168.0.37;
                proxy_set_header X-Forwarded-For $remote_addr;
                #proxy_redirect http://192.168.0.37/test/ /test/;
            }

            location / {
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_pass http://192.168.0.37/;
                proxy_set_header Host 192.168.0.37;
                proxy_set_header X-Forwarded-For $remote_addr;
            }
             access_log /data/logs/weblog/proxy_server.access.log;

}

 

这样的话,访问www.proxy.com/test就没问题了

[root@control_node vhosts]# curl www.proxy.com/test
192.168.0.37 proxy test OK!

 

 

 

转载于:https://www.cnblogs.com/searchappiness/archive/2013/04/24/3039947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值