我在 AWS 的弹性 IP 上运行了一个单实例 EC2 LAMP 服务器。我创建了一个自签名证书并启用了 mod_ssl。目前,我能够通过 https 成功访问我的网站(接受未签名的证书后),但当我实际查看 PHP 中的 $_SERVER['SERVER_PORT'] 变量时,EC2 仍然通过端口 80 为我的 https 请求提供服务。为了检查这一点,我使用以下脚本:
<?php
echo $_SERVER['SERVER_PORT'].'<br>';
echo $_SERVER['REQUEST_SCHEME'].'<br>';
?>
结果:
80
http
但是,当我查看所有浏览器中的 URL 栏时,它都显示安全连接。我的浏览器实际上是在测试证书和安全连接,还是只是在寻找以“https”开头的 URL?是否有某个配置文件将 SSL 流量重定向回端口 80?
答案1
如果你反复运行 php 脚本https
,http
你应该得到以下输出:
[root@wcmisdlin02 ~]# /usr/lib64/nagios/plugins/check_http -H localhost -u /php/phpinfo.php -v | grep SERVER_PORT
<tr><td class="e">SERVER_PORT </td><td class="v">80 </td></tr>
<tr><td class="e">_SERVER["SERVER_PORT"]</td><td class="v">80</td></tr>
[root@wcmisdlin02 ~]# /usr/lib64/nagios/plugins/check_http -H localhost -u /php/phpinfo.php -v --ssl | grep SERVER_PORT
<tr><td class="e">SERVER_PORT </td><td class="v">443 </td></tr>
<tr><td class="e">_SERVER["SERVER_PORT"]</td><td class="v">443</td></tr>
[root@wcmisdlin02 ~]#