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

问题1:nginx,使用了upstream模块配置了多个后端,然后反向代理,结果全变成了301跳转 问题2:nginx的rewrite规则用的时间长了似乎消不掉,要重启好几次

  •  
  •   shanyang · 2013-01-22 16:25:32 +08:00 · 11158 次点击
    这是一个创建于 4315 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问题1:nginx,使用了upstream模块配置了多个后端,然后反向代理,结果全变成了rewrite
    upstream mybackend
    {
    server aaa.com #一般情况下用aaa.com作为主要的后端
    server bbb.com backup #aaa.com挂了就用bbb.com
    }

    server
    {
    listen 80;
    server_name www.ccc.com;#ccc.com是用户实际访问的地址,被反代到mybackend去
    location /
    {
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
    proxy_pass http://mybakend;#反代ccc.com到mybackend
    }
    }
    在aaa.com挂掉的情况下,测试浏览器输入www.ccc.com,结果跳到bbb.com,但是不是反代的,而是直接301跳转过去,地址栏也变成了bbb.com,我想要的结果是输入www.ccc.com,展现bbb.com的内容但是地址栏不要变成bbb.com啊

    问题2:nginx的rewrite规则用的时间长了似乎消不掉,要重启好几次(去年10月份的nginx版本)
    以前我给nginx写了一个rewrite吧所有泛域名301导向到网站test.com
    然后我吧这个rewrite取消,但是重启nginx后,所有泛域名还是无条件跳到test.com
    重启好几次后(次数不定,linux也重启过),有时候能正常,有时候一直都保持之前的rewrite跳转
    这种情况怎么办
    6 条回复    2016-04-15 15:09:57 +08:00
    altchen
        1
    altchen  
       2013-01-22 17:54:33 +08:00
    配置应该没错,用firebug看下具体的返回
    1.感觉是bbb.com的返回http头或html自已执行了301转跳了
    2.会不会浏览器缓存?感觉不太可能是ningx的问题
    或者试升下最新版看下
    shanyang
        2
    shanyang  
    OP
       2013-01-27 00:05:29 +08:00
    感觉ngxin运行时间久了经常会出现这总问题,有时候重启动多次会好,会不会是nginx的bug
    xiaop
        3
    xiaop  
       2013-01-27 00:58:59 +08:00
    1,如果直接用aaa.com访问没问题,基本可以判定是你的配置文件有问题。
    2,可能是chrome的问题,换个浏览器试试看?
    Tianpu
        4
    Tianpu  
       2013-01-27 16:55:20 +08:00 via iPhone
    Http block: disable server name redirect
    Proxy pass block: add Host $host to backend

    Read proxy pass help page carefully and make a new conf
    Livid
        5
    Livid  
    MOD
       2013-01-27 16:56:51 +08:00 via iPhone
    重启可以试试:

    killall nginx
    /etc/init.d/nginx start
    Jakesoft
        6
    Jakesoft  
       2016-04-15 15:09:57 +08:00
    我也遇到了相同的问题,但是我的只有路径后面不加 /才会有 301 跳转啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.