Debian 上的 Apache 虚拟主机配置

Debian 上的 Apache 虚拟主机配置

我对 apache 配置还不熟悉,如果有人能帮助我解决以下问题,我将非常高兴。我在虚拟专用服务器上运行 apache,运行的是 debian 操作系统。

在 /etc/apache2/sites-available 中,我定义了两个虚拟主机,site1.com.conf 和 site2.com.conf。在 /etc/apache2/sites-enabled 中,我有一个指向 site1.com.conf 的符号链接。虚拟主机定义如下:

网站1.com.conf

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName  site1.com
  ServerAlias www.site1.com site1.com
  DirectoryIndex index.html index.htm index.php
  DocumentRoot /var/www/site1
        <Directory /var/www/site1>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
  LogLevel warn
  ErrorLog /var/log/apache2/site1_error.log
  CustomLog /var/log/apache2/site1_access.log combined
  ServerSignature Off
</VirtualHost>

网站2.com.conf

<VirtualHost *:80>
  ServerAdmin hostmaster@wharfage
  ServerName  site2.com
  ServerAlias www.site2.com site2.com
  DirectoryIndex index.html index.htm index.php
  DocumentRoot /var/www
  LogLevel debug
  ErrorLog /var/log/apache2/site2_error.log
  CustomLog /var/log/apache2/site2_access.log combined
  ServerSignature Off

  <Location />
    Options -Indexes
  </Location>

  Alias /favicon.ico /srv/site2/static/favicon.ico

  Alias /static /srv/site2/static
#  Alias /media  /usr/local/lib/python2.5/site-packages/django/contrib/admin/media

Alias /admin/media /var/lib/python-support/python2.5/django/contrib/admin/media 

  WSGIScriptAlias / /srv/site2/wsgi/django.wsgi

  WSGIDaemonProcess site2 user=samj group=samj processes=1 threads=10
  WSGIProcessGroup site2
</VirtualHost>

然而,奇怪的事情发生了。我能够按预期导航到 www.site1.com。它会加载 /var/www/site 中的内容,而我在 site1.com.conf 中已将其定义为 DocumentRoot。但是,如果我导航到 www.site2.com,它不会加载 /var/www 中的 index.html(它被定义为 site2.com.conf 的 DocumentRoot),如上所示,而是加载 /var/www/site1 中的内容。地址栏中的 URL 仍然是 www.site2.com。因此,我有以下两个问题:

问1)为什么 www.site2.com 的 DocumentRoot 已定义为 /var/www ,但却显示 /var/www/site1 的内容?

问2)由于 site2.com.conf 在 sites-enabled 中没有符号链接,我怎么能够导航到 www.site2.com 呢?

抱歉,如果我的问题听起来很菜鸟,但如果有人能解释这一点我会非常高兴。

谢谢。

答案1

您使用什么地址并不重要。如果 IP 地址相同,您可以使用 site3.com 并仍然访问 site1。第一个VirtualHost将为所有不匹配任何ServerName或 的主机名提供服务ServerAlias。您需要符号链接该site2.com.conf文件(或使用a2ensite)才能访问它。

相关内容