我使用Ubuntu 16.04服务器VM,我必须在其上配置以下域:
- maindomain.com:80
- 其他port.com:8080
每个指向VM IP的域,但显然是其他目录。
我设法获得了bind9,以使这些域指向VM时,当VM是DNS服务器时,我配置了Apache以获取以下结果:
好:
- maindomain.com:80返回Maindomain的索引
- 其他port.com:8080返回其他港口索引
坏:
- maindomain.com:8080返回其他港口索引
- 其他port.com:80返回Maindomain的索引
如果我将两个都放在端口80上,每个端口都分开了,但是如果我做不同的端口,似乎Apache只是在乎端口。
我如何阻止访问maindomain.com:8080和其他port.com:80?
maindomain.com.conf文件:
<VirtualHost maindomain.com:80>
ServerAdmin webmaster@localhost
ServerName maindomain.com
ServerAlias www.maindomain.com maindomain.com
DocumentRoot "/var/www/html/maindomain"
<Directory /var/www/html/maindomain>
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
其他port.com.conf文件:
<VirtualHost otherport.com:80>
ServerAdmin webmaster@localhost
ServerName otherport.com
ServerAlias www.otherport.com otherport.com
DocumentRoot "/var/www/html/otherport"
<Directory /var/www/html/otherport>
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我设法完成了它,但是我认为这更像是一个肮脏的骇客,而不是实际的解决方案。我做了两个类似的虚拟主机:
maindomain.com.trap.conf
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName maindomain.com
ServerAlias www.maindomain.com maindomain.com
DocumentRoot "/var/www/html/maindomain"
<Directory /var/www/html/maindomain>
Require all denied
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
另一个具有名称和端口切换的一个。
顺便说一句,我在第一篇文章中提到的前两个.conf文件中离开了<VirtualHost *:80>
和<VirtualHost *:8080>
。