我在haproxy 1.5上使用ubuntu 12.04上的apache 2.2。我的haproxy正在侦听端口80,而apache正在侦听端口8000.我想要做的是,我想转发haproxy上带有路径的所有请求" / test"我的阿帕奇。
我在" / var / www / test"中托管了一个wordpress应用程序。
我遇到的问题是,如果我尝试使用 http://www.example.com/test 访问测试应用,则apache将其重定向到 http://www.example.com:8000/test/ 。知道为什么会这样吗?我错过了什么?
以下是配置:
ports.conf:
NameVirtualHost *:8000
Listen 8000
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
位点可用/默认值:
<VirtualHost *:8000>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
haproxy.cfg:
frontend http-in
bind *:80
acl is_test path_beg /test
use_backend test_backend if is_test
backend test_backend
balance roundrobin
option forwardfor
server Local localhost:8000 check
我还发现当我在index.php中记录时,$ _SERVER [&#39; HTTP_X_FORWARDED_HOST&#39;]为空。不知道为什么会这样。
答案 0 :(得分:0)
问题出在Wordpress上。检查“站点地址(URL)”设置。 Wordpress正在将浏览器重定向到它自己被托管的位置。将“站点地址(URL)”设置更改为http://www.example.com/test应该会停止此操作。