了解虚拟主机设置

了解虚拟主机设置

好的,我有一台服务器,我想在上面安装几个应用程序,但我遇到了 vhost 配置问题。这是我的配置,我想得到一些关于我做错什么的指导...好的,第一个文件是 /etc/apache2/ports.conf

NameVirtualHost 184.106.111.142:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

然后我有 /etc/apache2/sites-available/somesite.com

<VirtualHost 184.106.111.142:80>
      ServerAdmin [email protected]
      ServerName somesite.com
      ServerAlias www.somesite.com
      DocumentRoot /srv/www/somesite.com/
      ErrorLog /srv/www/somesite.com/logs/error.log
      CustomLog /srv/www/somesite.com/logs/access.log combined
        <Directory "/srv/www/somesite.com/">
                AllowOverride all
                Options -MultiViews
        </Directory>
</VirtualHost>

当我访问 somesite.com 时,一切都运行正常,但当我添加另一个虚拟主机,假设它的名字是 anothersite.com 时。所以我有 /etc/apache2/sites-available/anothersite.com

<VirtualHost 184.106.111.142:80>
      ServerAdmin [email protected]
      ServerName anothersite.com
      ServerAlias www.anothersite.com
      DocumentRoot /srv/www/anothersite.com/
      ErrorLog /srv/www/anothersite.com/logs/error.log
      CustomLog /srv/www/anothersite.com/logs/access.log combined
        <Directory "/srv/www/anothersite.com/">
                AllowOverride all
                Options -MultiViews
        </Directory>
</VirtualHost>

然后我运行以下命令

>> sudo a2ensite anothersite.com
 Enabling site anothersite.com.
 Run '/etc/init.d/apache2 reload' to activate new configuration!
>> /etc/init.d/apache2 reload
 * Reloading web server config apache2
 ...done.

但当我访问 anothersite.com 或 somesite.com 时,它们都关闭了。虚拟主机出了什么问题。可能是 NameVirtualHost 声明带有 ip 之类的原因...也许我对虚拟主机设置的理解不清楚。我不明白的是为什么这两个网站现在突然完全不工作了。如果能澄清一下,我将不胜感激

顺便说一下,我只修改了 anothersite.com 或 somesite.com,让它更具可读性

答案1

我测试了您的配置,一切正常。使用 apache2 -S 进行调试:

# . /etc/apache2/envvars && apache2 -S
VirtualHost configuration:
184.106.111.142:80      is a NameVirtualHost
         default server somesite.com (/etc/apache2/sites-enabled/somesite.com:1)
         port 80 namevhost somesite.com (/etc/apache2/sites-enabled/somesite.com:1)
         port 80 namevhost anothersite.com  (/etc/apache2/sites-enabled/anothersite.com:1)
Syntax OK

然后在浏览器或 CURL 中打开网站(wget 不设置 Host 标头):

# curl somesite.com
a
# curl anothersite.com
b

相关内容