lnmpa1.3在nginx上配置ssl证书后,php无法获取$_SERVER['HTTPS']
求助,按照https://www.vpser.net/manage/namecheap-free-ssl-nginx.html这个教程,配置好lnmpa上的ssl证书,server{
listen 80;
#listen [::]:80;
server_name www.XXXX.com;
return 301 https://www.XXXX.com$request_uri;
}
server
{
listen 443;
server_name www.XXXX.com;
index index.html index.htm index.php default.html default.htm default.php;
root/data/www/XXXX;
ssl on;
ssl_certificate /usr/local/apache/conf/server.crt;
ssl_certificate_key /usr/local/apache/conf/server.key;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
include proxy-pass-php.conf;
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log/home/wwwlogs/www.XXXX.com.log;
}
访问都是正常的,但是为什么php在获取$_SERVER['HTTPS']的时候是空呢? 自己捣鼓了一晚上了,很多方法都去试了一遍但是就是无效,不知道各位或者军哥有没有遇到过这样的问题,可以给些指点 编辑 /usr/local/nginx/conf/proxy.conf 里加上
proxy_set_header X-Forwarded-SSL on;
proxy_set_header X-Forwarded-Proto $scheme;
后重启一下nginx再看一下
回复 3# 的帖子
配上这个还是不行,我使用的是lnmpa,我只在nginx虚拟主机里,配置了上面那段,难道还需要在apache上做配置吗?回复 4# 的帖子
apache虚拟主机配置里加上 SetEnvIf X-Forwarded-Proto https HTTPS=on 重启apache,再看看回复 5# 的帖子
谢谢军哥,折腾了一天了,真的没找到对的方法,按你上面说的那个配置配了,我在apahce虚拟主机里加了这么一段SSLEngine on
SSLCertificateFile /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key
SetEnvIf X-Forwarded-Proto https HTTPS=on
现在可以获取到了,谢谢 我自己测试了一下,测试完结贴
只需要在/usr/local/nginx/conf/proxy.conf 最后面加上 proxy_set_header X-Forwarded-Proto $scheme;
在对应apache虚拟主机或者httpd.conf 中加入SetEnvIf X-Forwarded-Proto https HTTPS=on 即可传递和接收是否使用的https协议
apache和nginx需要重启一下 标记下。谢谢了。:victory:
页:
[1]