记一次踩坑 nginx配置SSL证书进行https访问

当我配置完成SSL证书后,访问线上的TP3.2.3框架确一直在下载index.php文件,百思不得其解,好烦!!

我的nginx.conf中结尾有这样一句话 :            include /etc/nginx/conf.d/*.conf;

于是我创建了以 .conf结尾到的 local.conf文件, 同在nginx.conf写配置是一样的.

下面贴出我的配置方法:

server {
    listen      80;
    server_name  www.*.com;
    #charset koi8-r;
    #rewrite ^(.*) https://$server_name$1 permanent;        # 红色字体的配置都是强制跳转https,二选一即可
    #access_log  logs/host.access.log  main;
    return 301    https://$host$request_uri;
 location / {
        root    *            #项目根目录
        index index.php  index.html index.htm;
       if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php/$1 last;    #注(目的是将/后面的路径前加上index.php)
   }
    }

# HTTPS server
#
server {
    listen       443  ssl;
    server_name www.*.com;
    ssl    on;
    root html;
    index index.html index.htm;
     ssl_certificate          /etc/nginx/cert/*.crt;             #SSL证书
     ssl_certificate_key  /etc/nginx/cert/*.key;

#    ssl_session_cache    shared:SSL:1m;
     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_ciphers  HIGH:!aNULL:!MD5;
     ssl_prefer_server_ciphers  on;

     location / {
        root    *  ;          #项目根目录
        index index.php  index.html index.htm;
      if (!-e $request_filename) {
           rewrite ^(.*)$ /index.php/$1 last;    #注(目的是将/后面的路径前加上index.php)
}
    location ~ \.php(.*)$ {
            root           * ;            #项目根目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  HTTPS   on;
             include fastcgi.conf;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

   }
}

 出现下载index.php问题的原因可能是 nginx没有解析php-fpm路径

  我就是通过在配置SSL证书的server{}代码块中添加ocation ~ \.php(.*)$ {}代码块 让nginx解析php-fpm路径才成功解决!!

  心累啊.....

   以上代码解决方案属个人自己见解,请大佬轻喷,欢迎指正!!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值