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

Host two different sites in apache

我有一台安装了 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 服务器下托管这两个不同的网站。

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

这应该有效。请注意,第一个 VirtualHost 块是默认块,以防 http 请求与任何其他 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>