2 个不同端口上的 Apache 网站

2 个不同端口上的 Apache 网站

我有一个网站 (mysitedomain.com),它在 http 和 https 上运行。这是 httpd.conf,

Listen 80
Listen 443
Listen 81

<VirtualHost *:80>
  ServerName mysitedomain.com
  DocumentRoot "c:/wamp/www/"
</VirtualHost>

<VirtualHost *:443>
  ServerName mysitedomain.com
  DocumentRoot "c:/wamp/www/"
  SSLEngine on
  SSLCertificateFile C:/SSL/S-WildCard.cer
  SSLCertificateKeyFile C:/SSL/S-WildCard.key
  SSLCACertificateFile C:/SSL/S_chain_cert.crt
</VirtualHost>

现在我想在 mysitedomain.com:81 上运行另一个网站,因此我添加了

<VirtualHost *:81>
  ServerName mysitedomain.com:81
  DocumentRoot "c:/wamp/www2/"
</VirtualHost>

但这不起作用。我遗漏了什么吗?

答案1

确认端口开放后,尝试删除虚拟主机服务器名称中的端口,使其类似于:

    <VirtualHost *:81> 
        ServerName mysitedomain.com 
        DocumentRoot "c:/wamp/www2/" 
    </VirtualHost>

您已经定义了要监听的端口号。要访问 www2 目录提供的域,请在 url 中包含端口号

mysitedomain.com:81

答案2

由于某种原因,如果您不能使用单独的主机名或 IP 地址(在我的情况下是由哑路由器引起的),那么定义 VirtualHost 的唯一变量就是端口号。如果有两个 VirtualHost 具有相同的名称和 IP 地址,则必须在 /etc/apache2/apache2.conf 中明确设置 DefaultRuntimeDir:

默认运行时目录 /var/run/apache2

通过这种方式,我可以使用 git 分支和更新后挂钩来在开发小型网站期间管理功能分支。

相关内容