Это мой первый пост в Server Fault, извините за оплошность :)
Проблема: когда я пытаюсь получить доступ "http: // фиктивный_сервер / wp-admin", который находится за apache, действующим как WAF, он застревает в бесконечном цикле перенаправления.
Полную конфигурацию HAProxy и WAF можно найти здесь https://www.haproxy.com/blog/scalable-waf-protection-with-haproxy-and-apache-with-modsecurity/
Что бы я мог исследовать, если я получаю доступ к dummy_server при выключении apache VH (т.е. только с использованием прокси-сервера HA), когда я выполняю GET для dummy_server / wp-admin, сервер отвечает
HTTP/1.1 302 Found
Date: Wed, 20 Feb 2019 19:00:49 GMT
Location: https://dummy_server/wp-login.php?redirect_to=.....
Затем браузер перенаправляется на dummy_server / wp-login и ждет учетных данных пользователя.
Тем не менее, если я сделаю GET на dummy_server с активированным WAF, Расположение заголовок меняется на
Location: https://dummy_server/wp-admin
и процессы застревают в цикле перенаправления.
Если я выключу конфигурацию WAF (я использую modsecurity), чтобы apache действовал только как обратный прокси, но проблема не исчезнет.
Вот конфигурация виртуальной машины:
<VirtualHost *:90>
<IfModule mod_security2.c>
Include /etc/apache2/owasp-modsecurity-crs/crs-setup.conf
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
</IfModule>
ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off
ProxyPass / http://192.168.57.22:81/
ProxyPassReverse / http://192.168.57.22:81/
</VirtualHost>
Я искал на сайте, но не нашел ничего, что помогло бы мне в моем нынешнем затруднительном положении. Любые идеи?
Спасибо!
Проблема здесь в том, что ваш веб-сервер с выходом в Интернет использует https
, но связь между этим сервером и Apache2 http
.
Затем Wordpress видит, что входящее соединение идет с http
протокол, но URL-адрес сайта был определен как https
. Вот почему Wordpress отправляет перенаправление пользователю.
Я исправил эту проблему, добавив следующую строку в wp-config.php
.
$_SERVER['HTTPS'] = 'on';
Я не знаю, является ли это предпочтительным способом решения этой проблемы, но у меня он работает.
Вам также необходимо иметь надлежащие Host
заголовки, отправленные также на прокси-сервер.