阻止Apache虚拟主机响应所有端口

时间:2016-01-18 18:56:43

标签: apache virtualhost ports

我在这里有点挣扎,因为有些东西应该很简单,但我似乎无法弄清楚......

我希望为两个不同的端口定义两个不同的虚拟主机。所以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

谢谢你的时间......

1 个答案:

答案 0 :(得分:1)

在您当前定义的VirtualHosts中,使用ServerName和ServerAlias(如果需要)指令仅为该VirtualHost列出您想要的主机名(即foo或bar)。

然后复制每个VirtualHost,并在每个端口的文件中首先出现的副本中,只需输入ServerName www.example.com并删除ServerAlias,并将该VirtualHost的DocumentRoot设置为指向某个文件夹在其中有一个index.html文件,上面写着“我们很抱歉,但您使用无效的网址访问了此网站。”