Nginx配置相关问题解决(file not found | https)

最近在centOS7中为Nginx配置https时遇到了一些问题,希望此文章可以帮助到需要帮助的人~

Nginx 报 file not found 错误

location ~ \.php$ {                   #开启php解析
        root           项目主目录;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
      将 # fastcgi_param  SCRIPT_FILENAME   
           script$fastcgi_script_name

      改为:
        fastcgi_paramSCRIPT_FILENAME 
        /usr/local/nginx/html$fastcgi_script_name;  #指定路径

        include         fastcgi_params;
    }

服务器重启Nginx报错

nginx: [emerg] cannot load certificate “/etc/nginx/cert/4277470_www.luckyy.vip.pem”: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/nginx/cert/4277470_www.luckyy.vip.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
cert 的文件位置不对,放到nginx的安装目录下
the “ssl” directive is deprecated, use the “listen … ssl” directive instead in /etc/nginx/conf.d/default.conf:
开启https的方式不对,nginx版本升级后有修改

listen       443  

ssl on 

改成

listen       443  ssl;

nginx配置https后,网站出现无法访问情况

firewall-cmd --state 查看防火墙状态
firewall-cmd --zone=public--add-port=443/tcp--permanen(指定端口通过防火墙)
firewall-cmd --reload

防火墙firewall相关命令查看本文章

升级https后总是下载首页

在ssl server中加入解析php的代码
location ~ .*\.php$ {
    root /www/MyWordPress;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param HTTPS on;
    fastcgi_param  SCRIPT_FILENAME  指定项目目录$fastcgi_script_name;
    # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

升级https后首页正常,其他页面404,将代码加到location中

location / {
    root   D:/WWW/Lifes/public;
    index  index.html index.htm index.php;
    try_files $uri $uri/ /index.php?$query_string;
    if (!-e $request_filename){  
        rewrite ^/(.*) /index.php last;  
    } 
}
如果是wordpress的话,因为固定连接的原因,可以将固定链接更改成朴素模式或者是自定义模式,后期可以根据自身情况修改Nginx伪静态

本文为作者原创,允许转载,由骚杨在 luckyy.vip发布 转载请说明文章出处。

7+
Avatar

作者: 骚杨

本站总访问量:28,224 次