Apache 上的虚拟主机设置正确吗?

Apache 上的虚拟主机设置正确吗?

我在弄清楚 Centos6 服务器上 Apache2 虚拟主机的正确配置时遇到了问题。我有一个干净的 Centos6 安装,其中安装了 apache2 (httpd),默认情况下有/var/www/html/var/www/图标/var/www/错误/var/www/cgi-bin定义的内容文件夹,配置在/etc/httpd/conf/httpd.conf

我有 2 个域名一个百科配置,为此我创建了文件夹/var/www/a.com/var/www/b.com,并且在/etc/httpd/conf/httpd.conf我配置了 NameVirtualHost

NameVirtualHost *:80

并添加相应的虚拟主机一个百科喜欢

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  a.com
    ServerAlias www.a.com
    DocumentRoot /var/www/a.com
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory "/var/www/a.com">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

两个域名一个百科运行良好,我可以用或不用访问它们万维网子域名,但我很困惑我应该如何处理默认的 httpd 配置和默认内容文件夹?我似乎无法访问默认网站/var/www/html即使使用纯 IP 地址调用服务器(请求被定向到一个虚拟主机)。我还尝试将服务器主机名配置为中华网并设置

ServerName c.com:80

但即便如此,要求中华网正在重定向至一个虚拟主机。

我不需要 apache 创建的默认内容文件夹,所以我应该删除/var/www/html/var/www/图标/var/www/错误/var/www/cgi-bin文件夹和相应的定义/etc/httpd/conf/httpd.conf那是

DocumentRoot "/var/www/html"
<Directory "/var/www/html" ... />
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons" ... />
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin" ... />
Alias /error/ "/var/www/error/"
<Directory "/var/www/error" ... />

或者在同一台服务器上配置虚拟主机时,应该如何配置和访问默认主机?

答案1

当您使用基于名称的虚拟主机时,第一个主机将成为默认主机,它还将响应所有与其他虚拟主机的或指令<VirtualHost>中声明的域名不匹配的请求。ServerNameServerAlias

来自手动的

主要宿主消失
如果您要将虚拟主机添加到现有的 Web 服务器,您还必须<VirtualHost>为现有主机创建一个块。此虚拟主机中包含的 ServerName 和 DocumentRoot 应与全局 ServerName 和 DocumentRoot 相同。在配置文件中首先列出此虚拟主机,以便它充当默认主机。

相关内容