nginx配置http与https共存出现的问题

wadelin 发布于 2017/01/06 09:54
阅读 1K+
收藏 1

配置如下:


server {

        listen      80 default_server backlog=2048;

        listen       443 ssl;

        server_name  xxx.com;

        #error_log  /var/log/nginx/serverdebug.log debug;

        set $path  /home/www;

        root $path;

        index index.html index.htm index.php;

        #ssl on;  #这里注释掉,才能保证http、https共存

        ssl_certificate /usr/local/nginx/ssl/server.pem;

        ssl_certificate_key /usr/local/nginx/ssl/server.key;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

        ssl_prefer_server_ciphers on;

        location / {

                try_files $uri $uri/ /index.php;

        }

        location /status {

                stub_status on;

        }

        location /theme{

                root $path;

        }

         location ~ .*\.(php|php5)?$ {

                try_files $uri =404;

                fastcgi_pass 127.0.0.1:9000;

                fastcgi_param HTTPS on;

                #fastcgi_param HTTPS $https if_not_empty;

                fastcgi_index index.php;

                include fastcgi.conf;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

                root   html;

        }

}

nginx(版本1.10.2)配置http与https共存,会导致大概0.1%的普通http请求被发送到https端口,本来http 的post 请求 变成了 https 的get请求(原本所有请求都是http post),请问怎么解决呢?

尝试过的方法:使用rewrite的不行会导致post数据丢失,使用proxy_pass、upstream 也不行,还是会出现以上问题

加载中
0
开源中国首席工程师
开源中国首席工程师
你玩我啊~为毛不配置2个 server,各搞各就没事
0
w
wadelin

引用来自“开源中国首席工程师”的评论

你玩我啊~为毛不配置2个 server,各搞各就没事

谢谢,已解决,分开配置,433 端口开启 ssl on 即可,如果注释ssl on 后会导致部分http请求转发到https端口; 

返回顶部
顶部