刚把本站实现了全站强制https访问,Nginx下并且建站程序是wordpress实现的方法网上很多,我也看了许多,踩过了不少坑终于是弄出来了…
给出nginx的config配置吧:
# Settings for a TLS enabled server. server { listen 443; server_name localhost; ssl on; root /usr/www; index index.php index.html; ssl_certificate cert/214082939610963.pem; ssl_certificate_key cert/214082939610963.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { index index.php; try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
说明一下关键的配置项目:
#root /usr/www;
这是你的网站根目录
#ssl_certificate cert/214082939610963.pem;
#这是你申请得到的ssl证书保存的路径,我是保存到服务器的Nginx.conf所在目录下的cert目录的。
#ssl_certificate_key cert/214082939610963.key;
#这是你申请得到的ssl证书key的路径,和上面的证书路径保持一致。
#另外如果你需要强制https访问,就在监听80端口的增加:
server { listen 80; return 301 https://$host$request_uri; }
按照这个配置后,还需要进入wordpress后台-设置-常规-WordPress地址(URL)已及 站点地址(URL)该为https格式。
其实上面配置的其他部分有部分就是在重写url以实现静态页面,你只需要在wordpress后台设置-固定链接设置需要的链接格式就能实现伪静态了,比如我就设置的固定链接格式为:/archives/%post_id%.html
这样就实现了nginx下wordpress站点全局https伪静态了,如果你的网站部分页面的小绿锁消失,可以F12打开console查看报错信息,大都是页面引用了非https地址头的资源,在相应地方修改就是。
转载原创文章请注明,转载自: LYLARES BLOG » Nginx配置SSL