【问题标题】:Apache vhost config on non-standard port - only the first vhost is ever served非标准端口上的 Apache vhost 配置 - 仅提供第一个 vhost
【发布时间】:2017-02-07 05:40:33
【问题描述】:

我正在尝试通过非标准端口 (8787) 上的 Apache(ubuntu 14.04 LTS 上的 v2.4.7)为 2 个站点提供服务。这是为了适应代理设置(我让 nginx 在同一台专用服务器上的端口 80 上为其他站点提供服务)。我非常有信心代理配置很好,但虚拟主机似乎没有在 Apache 级别上得到尊重(即当我直接点击端口 8787 时,nginx 没有触及)。我的设置看起来非常简单,如下所示:

<VirtualHost *:8787>
    ServerName site1.com
    ServerAlias www.site1.com;
    DocumentRoot "/var/www/site1.com"

    <Directory "/var/www/site1.com">
      AllowOverride All 
    </Directory>  
</VirtualHost>

还有……

<VirtualHost *:8787>
  ServerName site2.com;
  ServerAlias www.site2.com;
  DocumentRoot "/var/www/site2.com"

  <Directory "/var/www/site2.com">
    AllowOverride All 
  </Directory>  
</VirtualHost>

我还有一个“Listen 8787”行替换了我的顶级 /etc/apache2/ports.conf 文件中的“Listen 80”行。这是我所做的自定义配置的总和。两个站点都已启用 a2ensite,并且 000-default vhost 已禁用。我通过查看 /etc/apache2/sites-enabled 中的符号链接仔细检查了这是否有效。我已经多次重新启动 Apache(使用 sudo)并多次重新启动整个机器。无论如何,当我点击http://site2.com:8787(以及http://site1.com:8787)时,我会得到site1。

我四处张望,试图找出可能导致这种情况的具体原因,但我完全没有想法。如果有人处理过这个问题,请告诉我,我会立即跟进修复状态。

【问题讨论】:

    标签: apache unix ubuntu vhosts


    【解决方案1】:

    更新:我解决了这个问题。它实际上是我不小心插入的 vhost conf 某些行上的尾随分号(我想我一直在编辑太多的 Nginx conf 文件)。我认为也许它们被 Apache 视为主机名的一部分

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 2013-02-12
      • 2021-06-16
      • 2016-03-24
      • 2017-04-01
      • 1970-01-01
      • 2018-05-17
      • 2018-08-15
      • 2013-07-13
      相关资源
      最近更新 更多