Http 打开的 apache 站点与 https 打开的站点不同

Http 打开的 apache 站点与 https 打开的站点不同

我已经在启用的站点中设置了 http 重定向到 https,cloud.conf所以最近我000-default使用sudo a2ensite 000-default现在启用了站点,这启用了我的000-default站点并且它打开了预期的文档根目录,没有 http 到 https 重定向,因为我在 000-default 中没有任何重定向。

但是当我重新启用站点云时,sudo a2ensite cloud它确实启用了我的 https 站点,从而打开了预期的站点云,但如果我打开 http 站点,它既不会自动重定向到 https,也不会以 http 模式打开 000-default 网站。

首先,当我启用网站为什么它仍以 http 模式打开旧网站并且不重定向?

更新

$ apachectl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost 192.168.1.3 (/etc/apache2/sites-enabled/cloud.conf:1)
*:443                  is a NameVirtualHost
         default server 192.168.1.3 (/etc/apache2/sites-enabled/cloud.conf:10)
         port 443 namevhost 192.168.1.3 (/etc/apache2/sites-enabled/cloud.conf:10)
         port 443 namevhost 192.168.1.3 (/etc/apache2/sites-enabled/cloud.conf:30)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

现在我想知道如何在端口 80 上启用 2 个站点

答案1

所以,这就是你的问题。你定义了两个 http vhost,一个使用ServerName127.0.0.1,另一个使用192.168.1.3。这意味着任何地址栏中未使用 192.168.1.3 的 HTTP 请求将登陆第一个虚拟主机(名称为 127.0.0.1)。

请注意,这看起来应该只是 localhost,这无关紧要,这只是它的名称。它是一个*:80虚拟主机,因此可以在机器上的任何网络接口上使用。

您在/etc/apache2/sites-enabled/cloud.conf两个服务器上都拥有两个 HTTPS 虚拟主机,其 IP 地址相同ServerName(192.168.1.30)。只有第一个(默认)会接收请求。

基于名称的虚拟主机的工作方式是,对于任何 IP/端口组合,Apache 都会尝试将HostHTTP 标头与ServerNameServerAlias指令进行匹配。第一个匹配的虚拟主机将接收请求。如果找到匹配项,则列出的第一个接收请求。

HTTPHost标头默认为方案(通常是 http:// 或 https://)和 URI 路径(从下一个“/”开始的位)之间的 URL 部分。

相关内容