2013-07-29 57 views
0

主机名我想用改写指令我的网站的每个IP地址重定向到该网站的主机名,也比使用proxy_pass指令访问该网站在NGINX这样重定向IP在NGINX

proxy_pass http://host/name ; 

使用NGINX作为代理可行,但我无法改变我的脚本来重写地址并同时代理我的请求。我试图使用Rewrite指令,但我无法找到正确的语法。

回答

0

使用rewrite指令更改主机将导致重定向。这意味着客户端需要使用新主机发布另一个请求,然后,您可以proxy_pass这个请求。在这种情况下,客户端(例如浏览器)中的URL将会更改,如'http://*.*.*.*:port/uri?request_string' - >'http://host/uri?request_string'。

通常,我们使用rewrite指令来更改将被proxy_passed请求的URI。如果你想改变主机,使用proxy_set_header。举个例子:

location ~* "^/maishenme/(knowse|knowdetail|iget|ilist|initem|i?compare)(.*)?$" { 
     rewrite "^/maishenme/(.*)?$" /$1 break; 
     proxy_pass http://***.xxx.com; 
     proxy_set_header Host "internal.xxx.com"; 
     break; 
} 

在这种情况下,从客户端,网址没有改变,但对于后端服务器,可以打印主机领域,看看它改为“internal.xxx.com”

+0

能否请您解释一下这更多的代码我,我怎么能与网站 – Hobbit1919

+0

的真实IP和主机名来测试它,如果你能接受一个301或302重定向,使用“重定向”指令,然后proxy_pass.If你想要更改proxy_pass中的主机字段,可以使用proxy_set_header替换它。阅读手册并尝试更多。 – TroyCheng