V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
imydou
V2EX  ›  NGINX

ngxin 做反向代理后访问目录会重定向到 proxy_pass 的 url

  •  
  •   imydou · 2014-04-02 22:37:49 +08:00 · 6122 次点击
    这是一个创建于 3906 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如访问 abcd.com/upload ,站点有默认首页的,会重定向到site001.cdn.abcd.com/upload,想知道是什么原因导致的,谢谢。
    下面是配置文件:

    server {
    listen 80;
    server_name abcd.com www.abcd.com;

    location / {
    subs_filter site001.cdn.abcd.com www.abcd.com;
    proxy_pass http://site001.cdn.abcd.com;

    proxy_connect_timeout 60s;
    proxy_read_timeout 5400s;
    proxy_send_timeout 5400s;

    proxy_redirect off;
    if ($request_filename ~* .*\.(gif|jpg|jpeg|png|bmp|swf)$)
    {
    expires 30d;
    }
    if ($request_filename ~ .*\.(js|css|htm|html)?$)
    {
    expires 12h;
    }
    }

    }
    8 条回复    1970-01-01 08:00:00 +08:00
    likexian
        1
    likexian  
       2014-04-02 22:43:25 +08:00
    跟配置没关系,后端服务器跳的
    imydou
        2
    imydou  
    OP
       2014-04-02 22:46:16 +08:00
    ijse
        3
    ijse  
       2014-04-02 22:50:36 +08:00
    在location里加一项配置:

    proxy_set_header HOST $http_host;

    需要修改下请求的HOST 头。
    imydou
        4
    imydou  
    OP
       2014-04-02 23:03:32 +08:00
    @ijse 谢谢你,修改后报错403,后端服务器并未绑定前端域名。
    sheaven
        5
    sheaven  
       2014-04-03 21:31:42 +08:00
    反向代理你先要设置一个upstream,而不是把后端地址直接放在proxy_pass 。
    sheaven
        6
    sheaven  
       2014-04-03 21:37:25 +08:00
    哦你这种写法也行,不过得修改下加上proxy_redirect ,而不是用subs_filter
    修改配置文件如下
    server {
    listen 80;
    server_name abcd.com www.abcd.com;
    proxy_redirect http://site001.cdn.abcd.com/ /;
    location / {
    proxy_pass http://site001.cdn.abcd.com;

    proxy_connect_timeout 60s;
    proxy_read_timeout 5400s;
    proxy_send_timeout 5400s;

    proxy_redirect off;
    if ($request_filename ~* .*\.(gif|jpg|jpeg|png|bmp|swf)$)
    {
    expires 30d;
    }
    if ($request_filename ~ .*\.(js|css|htm|html)?$)
    {
    expires 12h;
    }
    }

    }
    sheaven
        7
    sheaven  
       2014-04-03 21:38:25 +08:00
    漏了 proxy_redirect off; 去掉
    imydou
        8
    imydou  
    OP
       2014-04-04 02:46:31 +08:00
    @sheaven 还以为沉了,天亮了试一下,谢谢您~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.