在apache中托管两个不同的站点

时间:2015-02-08 21:05:19

标签: apache apache2 virtualhost

我有一台安装了Apache的Linux服务器。我使用VirtualHost在其中配置了两个网站。

我为两个不同的域名配置了两个VirtualHosts。配置如下所示:

<VirtualHost 12.123.123.123>
  ServerAdmin info@example-one.com
  ServerName example-one.com
  ServerAlias www.example-one.com
  DocumentRoot /var/www/html/example-one
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost 12.123.123.123>
  ServerAdmin info@example-two.com
  ServerName example-two.com
  ServerAlias www.example-two.com
  DocumentRoot /var/www/html/example-two
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

当我访问我的网站example-one.com时,我会看到正确的网站。

但是当我访问example-two.com时,我会看到example-one.com的网站。

我做错了什么?我正试图在同一个Apache服务器下托管这两个不同的网站。

1 个答案:

答案 0 :(得分:1)

你的httpd配置文件中是否有NameVirtualHost指令?

这应该有效。请注意,如果http请求与任何其他VirtualHost块不匹配,则第一个VirtualHost块是默认值。

供参考https://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost

NameVirtualHost *:80
<VirtualHost *:80>
  ServerAdmin info@example-one.com
  ServerName example-one.com
  ServerAlias www.example-one.com
  DocumentRoot /var/www/html/example-one
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin info@example-two.com
  ServerName example-two.com
  ServerAlias www.example-two.com
  DocumentRoot /var/www/html/example-two
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>