我正在尝试在我的 Web 服务器上进行一些测试,以确保反向代理在将其置于实时环境之前按预期工作,但我遇到了 mod_proxy 和 mod_proxy_html 的一些问题。
我有 2 个虚拟主机,1 个在端口 80 上,1 个在端口 8080 上。我的目标是让 www.example.com/path/ 的传入请求进入端口 80,并反向代理到端口 8080。
这是我的虚拟主机设置:
<VirtualHost *:8080>
ServerName www.example.com:8080
DocumentRoot /var/www/html/test
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*test
RewriteRule ^/?(.*) http://127.0.0.1:8080/test.html [R=301,L]
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
ProxyHTMLEnable On
ProxyHTMLInterp On
ProxyPreserveHost Off
ProxyPass /path/ http://127.0.0.1:8080/
ProxyPassReverse /path/ http://127.0.0.1:8080/
ProxyHTMLURLMap http://127.0.0.1:8080/ /path/
</VirtualHost>
我的 /var/www/html/test 有 2 个文件 index.html 和 test.html
test.html 内容是:
<HTML>
<BODY>
<a href="http://127.0.0.1:8080/index.html">TEST</a>
</BODY>
</HTML>
访问 www.example.com/path/ 成功被代理并重定向到 www.example.com/path/test.html,但页面上的链接仍然指向 127.0.0.1。
httpd -M 确实报告加载 proxy_module 和 proxy_html_module
我也尝试过手动将 LoadModule 添加到 http.conf
LoadModule proxy_module /usr/lib64/httpd/modules/mod_proxy.so
LoadModule proxy_html_module /usr/lib64/httpd/modules/mod_proxy_html.so
关于为什么它不能正常工作的任何想法?我是否配置错误?