目前有两台服务器,都是http和https协议共存。
但是部分程序遇到一些问题,因为PHP中有根据$_SERVER['HTTPS']来设置环境常量。
一台服务器可以拿到值为on,另外一台却是NULL。
一步步排查后才知道,这是个 fastcgi 配置的问题!
解决方法的办法就是Nginx配置加上:
fastcgi_param HTTPS $https if_not_empty;
完整配置如下:
location ~ .*\.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_param HTTPS $https if_not_empty; fastcgi_index index.php; include fastcgi_params; }
很多人认为使用
fastcgi_param HTTPS on;
这样是没错啦,不过强迫使用这个参数,不太有效哦!
最好的答案就(参考下面 nginx 官方的链接)
fastcgi_param HTTPS $https if_not_empty;
有 https 协议时才自动使用 https on,否则忽略这个参数。
注意:这个 if_not_empty 额外参数只适合 Nginx 1.1.11 之后的版本
参考地址:
问题内容: 我在线上看过很多教程,说您需要检查服务器是否通过HTTPS进行了安全连接。我的问题是,在我使用的某些服务器上,这是一个未定义的变量,导致错误。我可以检查是否应该定义另一个变量? 为了清楚起见,我目前正在使用以下代码来确定它是否为HTTPS连接: 问题答案: 即使未定义,这也应该始终有效 : 该代码与IIS兼容。 : 1)如果通过HTTPS协议查询脚本,则设置为非空值。 2)请注意,当将
使用 HTTPS HTTPS 即 HTTP over SSL/TLS,是 HTTP 的安全版本,在 HTTP 上加了一层处理加密信息的模块。 SSL/TLS 全称安全传输层协议 Transport Layer Security, 是介于 TCP 和 HTTP 之间的一层安全协议,不影响原有的 TCP 协议和 HTTP 协议,所以使用 HTTPS 基本上不需要对 HTTP 页面进行太多的改造。浏览器
我有一个Spring Boot 1.3.0应用程序,其中包含Spring Security OAuth,作为一种SSO集成。 问题是,应用程序运行在非SSL环境中,负载平衡器(F5)后面有一个非标准端口,强制使用SSL,OAuth提供程序要求将所有重定向URL注册为https,但Spring OAuth客户端(使用@EnableOAuthso自动配置)将仅使用以下URL重定向到OAuth提供程序。
问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt
我有项目,我在ubuntu服务器上安装了SSL证书。我已经做了我发现的每一个解决方案,但每次打开页面时仍然会收到这条消息。 以下是我为强制Laravel使用https所做的更改: 我变了。htaccess在我的公用文件夹中,并添加了以下行 2-应用程序内- 3-我创建了php artisan make:middleware ForceSSL,并将以下代码添加到句柄函数中 在内核中。php 在里面e
问题内容: 我尝试像这样在python中使用https代理: 是从文件读取的代理,格式为ip:port。我在浏览器中检查了这个https代理,它可以工作。但是在python中,此代码挂起了几秒钟,然后出现异常: 我尝试使用socks5代理,它适用于安装了PySocks的socks5代理。但是对于https我有这个例外,有人可以帮我吗 问题答案: 为指定代理列表时,密钥是协议,值是domain /