我为我的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
我认为存在无限循环,我不知道为什么会这样。我认为如果主机文件没有解析子域,则应显示代理服务器的页面。
答案 0 :(得分:0)
ServerName不应该像域名一样,而别名是www吗?像:
ServerName tld.com
ServerAlias www.tld.com
将ServerName作为子域,然后使用通配符添加别名,似乎有点多余。