特定域的 nginx 重定向
nginx redirect for a specific domain
我想重定向流量来自:
http://demo.foo.com/a.png
to http://demo.bar.com/a.png
需要注意的是 foo.com
和 bar.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
(所以我的 server_name 过滤器不起作用)
2) 再过几分钟 (~2-3) 两个 curl 命令都停止工作,并且 return 一条 503 Unavailable 消息(这可能是由于 #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;
}
...
}
我想重定向流量来自:
http://demo.foo.com/a.png
to http://demo.bar.com/a.png
需要注意的是 foo.com
和 bar.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
(所以我的 server_name 过滤器不起作用)
2) 再过几分钟 (~2-3) 两个 curl 命令都停止工作,并且 return 一条 503 Unavailable 消息(这可能是由于 #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;
}
...
}