我的要求是重定向URL,它使用反向代理在端口80上运行。我想我必须使用URL重定向,反向代理在一起。
现在已经有了一个活跃的web域,比如:https://abcd.cdsw.intranet.example.com,但是我们希望使用反向代理来隐藏来自URL的转换,但是这个URL运行在端口80中。
因此,我无法在7中启动httpd服务器来引入反向代理。有人能帮我吗?
预期:
实际网址:https://abcd.cdsw.intranet.example.com/login
预期网址:http或https://example.com/cdsw
发布于 2017-12-08 20:29:15
在Apache下,使用ProxyPassReverse反向指令可以做您想做的事情。它将从后端服务器获取重定向,并将后端主机名替换为前端名称。从文件中:
这个指令允许Apache在HTTP重定向响应上调整
Location、Content-Location和URI头中的URL。当Apache httpd被用作反向代理(或网关)以避免绕过反向代理时,这是非常重要的,因为HTTP重定向在后端服务器上,而后端服务器保持在反向代理的后面。
他们还举了一个例子,说明它通常如何与调整cookie路径一起使用:
ProxyPass "/mirror/foo/" "http://backend.example.com/"
ProxyPassReverse "/mirror/foo/" "http://backend.example.com/"
ProxyPassReverseCookieDomain "backend.example.com" "public.example.com"
ProxyPassReverseCookiePath "/" "/mirror/foo/"您可能会发现,HTML文档中也有来自后端服务器的绝对链接。如果是这样的话,您可以使用国防部_代理_html模块来替换它们。
听起来,在这种情况下,您没有自己开发后端you应用程序,而且它可能没有在代理服务器后面运行的设置。但是,如果您可以修改后端end应用程序上的代码,则可以修改它以编写其链接并使用前端主机名重定向。
前端代理服务器使用X-Forwarded-For头将主机名传递给后端。您可以将服务器更改为使用来自此标头的值,而不是ServerName,以便它在代理后面无缝工作。
https://webmasters.stackexchange.com/questions/111297
复制相似问题