我想使用重写指令将我网站的每个 IP 地址重定向到该网站的主机名,而不是像这样在 NGINX 中使用proxy_pass指令访问该网站
proxy_pass http://host/name ;
使用 NGINX 作为代理可以,但我无法更改我的脚本来重写地址并同时代理我的请求。我尝试使用 Rewrite 指令,但我找不到正确的语法。
我想使用重写指令将我网站的每个 IP 地址重定向到该网站的主机名,而不是像这样在 NGINX 中使用proxy_pass指令访问该网站
proxy_pass http://host/name ;
使用 NGINX 作为代理可以,但我无法更改我的脚本来重写地址并同时代理我的请求。我尝试使用 Rewrite 指令,但我找不到正确的语法。
使用 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;
}
在这种情况下,从客户端来看,url 没有变化,但是对于后端服务器,您可以打印主机字段并看到它已更改为“internal.xxx.com”