我最近开始和朋友一起用 Apache 托管一个网站,并为每个人的地区创建了几个子域。我做了 DNS 记录,它们都正常工作,并反向代理到正确的子域……除了邮件。无论我放入实际的电子邮件服务器还是只是我的反向代理的测试子域,它总是返回 ERR_CONNECTION_REFUSED。我尝试了所有方法,从将文档根目录切换到我知道可以工作的子域,到我知道可以正确处理的端口,但邮件似乎不想配合。我在下面链接了我的主配置文件的精简版。ports.conf 也让它监听正在使用的端口。
<VirtualHost *:80>
ServerName mail.my-site.com
DocumentRoot "/var/www/email/"
ProxyPass "/" "http://127.0.0.1:8080/"
ProxyPassReverse "/" "http://127.0.0.1:8080/"
<Location />
Order allow,deny
allow from all
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName test.my-site.com
DocumentRoot "/var/www/test"
ProxyPass "/" "http://127.0.0.1:8081/"
ProxyPassReverse "/" "http://127.0.0.1:8081/"
<Location />
Order allow,deny
allow from all
</Location>
</VirtualHost>
#host
<VirtualHost *:80>
ServerAdmin myemail@email
ServerName www.my-site.com
ServerAlias my-site.com
DocumentRoot /var/www/my-site
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/my-site>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
只是为了重申/澄清,我已经翻转了邮件和测试子域(及其相应的配置文件),并且测试仍然可以启动邮件服务器,但邮件不会加载测试页面(基本 apache index.html)。
这是测试子域的配置文件。邮件基本上是一个镜像,具有更改的端口和文档路由以及服务器名称,直到我发现它无法加载的原因
<VirtualHost *:8081>
ServerName test.my-site.com
ServerAdmin myemail@email
DocumentRoot "/var/www/test"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/test>
Order allow,deny
allow from all
</Directory>
</VirtualHost>