问:在Apache 2.4.10上禁用对默认vhost和服务器IP的访问

时间:2015-08-03 08:22:55

标签: apache vhosts

我正在尝试在Debian 8“Jessie”上运行Apache 2.4.10,并在其上托管多个网站。这可能是一个显而易见且已经回答的问题,但我从来没有必要建立一个专门的网络主机(通常只是放弃WAMP服务器以满足开发需求或拿起网络托管服务)到目前为止我还没有任何运气找到我的问题的答案(我找到了我正在努力实现的完全相反的答案)。我需要让这个工作,因为除了主持几个网站,将有额外的软件设置,为此,常规的网络托管服务将不会。

一切似乎都按预期工作,但唯一的问题是我似乎无法找到一个最佳配置,它不会阻止访问默认vhost与403 - Forbidden。我需要的是Apache忽略请求(不只是返回404文档,而是告诉浏览器没有任何内容)来自访问默认虚拟主机的任何人或直接通过它指定的IP访问服务器。指定的IP应仅用于SSH访问(因为我没有对此服务器的任何物理访问权限)。

基本上,Web服务器应该可以通过“FQDN-1”和“FQDN-2”(每个位于各自的目录中)从Web浏览器访问,并且应该忽略对此服务器上任何其他Web地址的访问(调用)浏览器“404 not found”而不是返回服务器错误文档,这表明存在某些内容。

我当前的vhost文件:

<VirtualHost *:80>
    ServerName FQDN-1
    ServerAlias www.FQDN-1
    ServerAdmin mail@FQDN-1
    DocumentRoot /var/www/FQDN-1/public_html
    ErrorLog /var/www/FQDN-1/logs/error.log
    CustomLog /var/www/FQDN-1/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName FQDN-2
        ServerAlias www.FQDN-2
        ServerAdmin mail@FQDN-2
        DocumentRoot /var/www/FQDN-2/public_html
        ErrorLog /var/www/FQDN-2/logs/error.log
        CustomLog /var/www/FQDN-2/logs/access.log combined
</VirtualHost>

默认虚拟主机已通过“a2dissite 000-default”禁用 Iptables会阻止除tcp端口80和22之外的所有内容(SSH访问在iptables中列入白名单,只有少数特定的iP)。

1 个答案:

答案 0 :(得分:2)

您可以让内置的基于名称的虚拟主机为您完成工作。您只需使用

设置一个额外的(非默认/非首次列出*:80)虚拟主机
ServerName your-ip 

并提出一个简单的规则,如

RewriteEngine ON 
RewriteRule ^ .* [F]

Redirect 403 /
相关问题