我在这里有点挣扎,因为有些东西应该很简单,但我似乎无法弄清楚......
我希望为两个不同的端口定义两个不同的虚拟主机。所以foo.com:81和bar:82提供不同的内容。 问题是,如果我访问foo:82 Apache为我提供bar:82的内容。 foo只需要从端口81监听什么配置,而bar只监听端口82?
/etc/apache2/sites-enabled/test1.conf
NameVirtualHost *:81
<VirtualHost *:81>
ServerName test1
ServerAlias test1
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/sites-enabled/test2.conf
NameVirtualHost *:82
<VirtualHost *:82>
ServerName test2
ServerAlias test2
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/ports.conf
Listen 80
Listen 81
Listen 82
<IfModule ssl_module>
Listen 443
listen 444
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
listen 444
</IfModule>
的/ etc /主机
127.0.0.1 test1
127.0.0.1 test2
谢谢你的时间......
答案 0 :(得分:1)
在您当前定义的VirtualHosts中,使用ServerName和ServerAlias(如果需要)指令仅为该VirtualHost列出您想要的主机名(即foo或bar)。
然后复制每个VirtualHost,并在每个端口的文件中首先出现的副本中,只需输入ServerName www.example.com并删除ServerAlias,并将该VirtualHost的DocumentRoot设置为指向某个文件夹在其中有一个index.html文件,上面写着“我们很抱歉,但您使用无效的网址访问了此网站。”