2015-04-16 68 views
0

我想從重定向流量:nginx的重定向特定域

 http://demo.foo.com/a.png 
to http://demo.bar.com/a.png 

一個需要注意的是,foo.combar.com都是同一個盒子。因此,我需要指定重定向僅適用於foo.com流量,以避免在bar.com流量上發生重定向循環。

我嘗試這樣做:

server { 
    server_name demo.foo.com; 
    return  301 $scheme://demo.bar.com$request_uri; 
} 

等待它生效過了一分鐘......這看起來前途無量:

curl -I http://demo.foo.com 

301出現預期。但是,有兩個問題:

1)運行curl -I http://demo.bar.com也回來了301重定向到幾分鐘(後demo.bar.com(所以我的服務器名稱過濾器不工作)
2)〜2-3)都捲曲命令停止工作,(由於引起#1重定向循環,這可能是)返回503不可用消息

回答

1

我們正在使用這種施工中的:

server { 
    ... 

    server_name demo.foo.com demo.bar.com; 

    if ($http_host = "demo.foo.com") { 
     rewrite^http://demo.bar.com:$server_port$request_uri permanent; 
    } 

    ... 
} 
+0

添加if語句似乎是什麼工作,即使它被列爲「不良行爲」或「坑坑窪窪」。謝謝。我不需要server_name行。 – Matt