Apache反向代理使用hosts文件

时间:2015-08-27 17:25:50

标签: apache configuration proxy

我为我的apache服务器设置了以下配置:

<VirtualHost *:80>
    ServerName www.tld.com
    ServerAlias *.tld.com

    ProxyRequests On
    ProxyPreserveHost On

    RewriteEngine on
    RewriteRule ^(.+) $1 [P]
    ProxyPassReverse / $1


</VirtualHost>
<VirtualHost *:443>
    ServerName www.tld.com
    ServerAlias *.tld.com
    ProxyRequests On
    ProxyPreserveHost On

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key

    ProxyPass / http://localhost/
    ProxyPassReverse / http://localhost/
</VirtualHost>

然后我将主机文件设置为如下所示:

127.0.0.1 tld.com
external_ip sub.tld.com
external_ip_2 sub.tld.com

external_ip和external_ip_2是两个运行apache且具有vhost的服务器。对于主域,我有一个通配符CSS并添加了通配符DNS记录。

对于我/ etc / hosts文件中的所有服务器,代理也适用于HTTP和HTTPS。但似乎当我尝试解析不在我的hosts文件中的子域时,apache会卡住并且在日志中我会看到以下错误:

[pid 4690] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

我认为存在无限循环,我不知道为什么会这样。我认为如果主机文件没有解析子域,则应显示代理服务器的页面。

1 个答案:

答案 0 :(得分:0)

ServerName不应该像域名一样,而别名是www吗?像:

ServerName tld.com
ServerAlias www.tld.com

将ServerName作为子域,然后使用通配符添加别名,似乎有点多余。