在HAProxy后面使用Apache2无法正常工作

时间:2015-04-30 19:24:07

标签: wordpress apache load-balancing haproxy

我在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;]为空。不知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

问题出在Wordpress上。检查“站点地址(URL)”设置。 Wordpress正在将浏览器重定向到它自己被托管的位置。将“站点地址(URL)”设置更改为http://www.example.com/test应该会停止此操作。