Настройка mod_proxy_html в CentOS 7

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

Любые мысли о том, почему он не работает должным образом? Я что-то неправильно настраиваю?


person bqq100    schedule 01.09.2015    source источник


Ответы (1)


Пакет mod_proxy_html в CentOS 7 не включает никаких настроек по умолчанию ProxyHTMLLinks или ProxyHTMLEvents, поэтому он ничего не делает, если вы сами не предоставите эти настройки.

Один из способов сделать это — скопировать /usr/share/doc/httpd-2.4.6/proxy-html.conf в /etc/httpd/conf.d/. Этот файл содержит следующие настройки, которые должны заставить все работать:

ProxyHTMLLinks  a       href
ProxyHTMLLinks  area        href
ProxyHTMLLinks  link        href
ProxyHTMLLinks  img     src longdesc usemap
ProxyHTMLLinks  object      classid codebase data usemap
ProxyHTMLLinks  q       cite
ProxyHTMLLinks  blockquote  cite
ProxyHTMLLinks  ins     cite
ProxyHTMLLinks  del     cite
ProxyHTMLLinks  form        action
ProxyHTMLLinks  input       src usemap
ProxyHTMLLinks  head        profile
ProxyHTMLLinks  base        href
ProxyHTMLLinks  script      src for

ProxyHTMLEvents onclick ondblclick onmousedown onmouseup \
                onmouseover onmousemove onmouseout onkeypress \
                onkeydown onkeyup onfocus onblur onload \
                onunload onsubmit onreset onselect onchange
person slowdog    schedule 08.10.2015