Apache Centos 多实例和虚拟主机

Apache Centos 多实例和虚拟主机

我在 centos 上安装了 apache,并添加了两个虚拟主机(server1.com 和 server2.com):

服务器1.conf

Listen 443 https
<VirtualHost *:443>
    DocumentRoot /opt/server1/
    ServerName  server1.com
    ServerAlias server1.com
<Directory "/opt/server1/">
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
       SetHandler "proxy:unix:/var/run/php-fpm-server1.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

服务器2.conf

<VirtualHost *:443>
    DocumentRoot /opt/server2/
    ServerName  server2.com
    ServerAlias server2.com
<Directory "/opt/server2/">
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
       SetHandler "proxy:unix:/var/run/php-fpm-server2.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

上述配置完美运行,我可以通过浏览器的 443 端口访问 server1.com 和 server2.com,并且它们显示不同的内容(完美)。

现在的问题是我想要两个独立的 apache 实例,这样我就可以在需要时启动和停止每个实例。我在 /etc/systemd/system 文件夹中创建了两个服务。

  1. 问题是,当我执行 systemctl start httpd-server1.service 时,server1.com 运行正常,但 server2.com 也运行正常,并且显示的内容与 server1.com 相同。只有 server1.com 应该可以运行!!
  2. 第二个问题是,当我执行 systemctl start httpd-server2.service 时,它​​会失败并显示“没有可用的监听套接字,正在关闭”,即使我在 server2.conf 上添加另一个“listen 443”,我仍然会收到另一个错误“无法绑定到地址 [::]:443”

以下是两个 systemctl 服务文件中启动 httpd 进程的命令:

/opt/httpd/sbin/apachectl -f /etc/opt/httpd/conf/httpd-server1.conf -k start

/opt/httpd/sbin/apachectl -f /etc/opt/httpd/conf/httpd-server2.conf -k start

httpd-server1.conf 指向 server1.conf,httpd-server2.conf 指向 server2.conf,所以我不明白为什么启动一个服务时,另一个服务即使在同一个端口上也无法启动。

我迷茫了,我不知道如何单独创建每个实例。有人遇到过这个问题吗?

相关内容