Fra*_*nez 2 redirect wordpress haproxy apache-2.4
这是我在服务器故障中的第一篇文章,所以我很抱歉任何失礼:)
问题:当我尝试访问充当 WAF 的 apache 背后的“ http://dummy_server/wp-admin ”时,它陷入无限重定向循环。
HAProxy 和 WAF 的完整配置可以在这里找到https://www.haproxy.com/blog/scalable-waf-protection-with-haproxy-and-apache-with-modsecurity/
对于我可以调查的内容,如果我在对 dummy_server/wp-admin 执行 GET 操作时在关闭 apache VH(即仅使用 HA 代理)的同时访问 dummy_server,则服务器会响应
HTTP/1.1 302 Found
Date: Wed, 20 Feb 2019 19:00:49 GMT
Location: https://dummy_server/wp-login.php?redirect_to=.....
Run Code Online (Sandbox Code Playgroud)
然后浏览器重定向到 dummy_server/wp-login 并等待用户凭据。
尽管如此,如果我在激活 WAF 的情况下对 dummy_server 执行 GET,则Location标头将更改为
Location: https://dummy_server/wp-admin
Run Code Online (Sandbox Code Playgroud)
以及陷入重定向循环的过程。
如果我关闭 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>
Run Code Online (Sandbox Code Playgroud)
我一直在网站上搜索,但我没有找到任何可以帮助我解决当前困境的东西。有任何想法吗?
谢谢!
这里的问题是您面向 Internet 的 Web 服务器正在使用https,但该服务器和 Apache2 之间的通信是http.
然后,Wordpress 看到传入的连接是通过http协议传入的,但站点 URL 已定义为https. 这就是 Wordpress 向用户发送重定向的原因。
我通过将以下行添加到wp-config.php.
$_SERVER['HTTPS'] = 'on';
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是处理这个问题的首选方式,但它对我有用。
您还需要将正确的Host标头发送到代理服务器。
| 归档时间: |
|
| 查看次数: |
2584 次 |
| 最近记录: |