使用 nginx 创建企业综合网站

使用 nginx 创建企业综合网站

我的客户需要将所有企业合并到一个保护伞下,而无需将它们从原始位置移走。例如,他已经有一个以 realestate.com 和 movers.com 运行的网站,现在他想将它们合并到 corporate.com 下,这样 corporate.com/real 链接将映射到 real.corporate.com 并显示托管在 realestate.com 上的网站。这不是重定向,因此 URL 栏将显示 real.corporate.com 的 real.corporate.com,并且所有链接也将是相对的,例如 realestate.com/index.html 将显示为 real.corporate.com/index.html。realestate.com/portfolio/houses/pictures 将变为 real.corporate.com/portfolio/houses/pictures。我尝试使用 proxy_pass,但这会更改 URL。我目前正在一个网站上测试它,以下是我的服务器块

server{
listen 80;

location / {
proxy_pass http://www.realestate.com/;
sub_filter_once off;
proxy_redirect off;
proxy_set_header Host $host;
}
}

此设置直接将我带到realestate.com,并且浏览器中的URL也会更改。将位置更改为location /real出现404错误。

请帮忙

答案1

您的配置未执行任何重定向。重定向由 处的上游 Web 服务器发送realestate.com

应用程序发送重定向到realestate.com,因为请求未发送到应用程序中配置的域。

您可以使用以下方式更改此设置

proxy_set_header Host www.realestate.com;

此设置发送带有标头的上游代理请求Host: www.realestate.com,这将使其最终到达上游服务器中的正确虚拟服务器。

不过,您仍然可能会遇到由 生成的链接的问题www.realestate.com

此外,如果www.realestate.com发送任何 HTTP 重定向,则需要用proxy_redirect default;指令替换重定向内容。

相关内容