解决Apache反向代理中,跳转网址与客户端输入网址不一致的问题

Posted davcloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Apache反向代理中,跳转网址与客户端输入网址不一致的问题相关的知识,希望对你有一定的参考价值。

声明:本文全部内容为原创内容,禁止在未经授权的情况下进行任何二次创作和修改,转载请注明出处。

提示:文章内容可能会发生改变,如文中出现与实际不符的情况,请点击最后的阅读原文查看个人博客主站的最新版本。

摘要

问题

示例配置:

<VirtualHost _default_:443> Servername blog.davcloud.top SSLEngine on SSLCertificateFile ssl_certificate_file SSLCertificateKeyFile ssl_certificate_key_file RewriteEngine On
ProxyPass / http://192.168.1.101:3333/ ProxyPassReverse / http://192.168.1.101:3333/</VirtualHost>

在这个例子中,部署在公网上的代理服务器的网址为 https://blog.davcloud.top/, 转发到的内网服务器上的网址为http://192.168.1.101:3333。

当客户端输入的网址为 https://blog.davcloud.top/test.html时,实际访问的网址是https://192.168.1.101:3333/test.html,该网址对于客户端而言并不存在。

解决方案

在配置中添加一句 “ProxyPreserveHost On” 命令。

配置:

<VirtualHost _default_:443> Servername blog.davcloud.top SSLEngine on SSLCertificateFile ssl_certificate_file SSLCertificateKeyFile ssl_certificate_key_file RewriteEngine On
ProxyPass / http://192.168.1.101:3333/ ProxyPassReverse / http://192.168.1.101:3333/ ProxyPreserveHost On</VirtualHost>

当客户端输入的网址为https://blog.davcloud.top/test.html时,实际访问的网址是https://blog.davcloud.top/test.html,此时该网址对于客户端而言是正确的。

--------------------------------------------

个人博客主站(中英最新内容):https://blog.davcloud.top/

CSDN:不向光的红外线

知乎:不向光的红外线

以上是关于解决Apache反向代理中,跳转网址与客户端输入网址不一致的问题的主要内容,如果未能解决你的问题,请参考以下文章

正向代理,反向代理

Apache反向代理配置

apache配置反向代理+websocket

nginx代理简单配置实现修改网站域名

mac nginx 反向代理解决微信小程序端口问题

正向代理与反向代理的概念