Я пытаюсь провести некоторое тестирование на своем веб-сервере, чтобы убедиться, что обратный прокси-сервер работает должным образом, прежде чем помещать его в живую среду, но у меня возникают некоторые проблемы с 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
Любые мысли о том, почему он не работает должным образом? Я что-то неправильно настраиваю?