Ghost 部署 Nginx 和 HTTPS 配置
之所以会有这篇教程,因为我最近在玩 Ghost 的过程中遇到了不少坑,对于众多入门新手来说,第一步应该就是要先部署了,不管三七二十一,跑起来再说。
Nginx
Ghost CLI 工具部署的时候会运行在一个自定义端口上,这个端口是可以自行配置的,为什么会用到 Nginx?一般注意服务器安全的人会开服务器防火墙,那么就需要用 Nginx 把 Ghost 反向代理到 80 端口,当然也可以直接把 Ghost 跑在 80 端口,那你这台服务器就只能放这一个站了 …
HTTPS
Ghost 内部 HTTPS 判断逻辑,简单的监听 443 和部署证书会导致程序重定向次数过多无法访问,解决办法也很简单,看配置。
配置
server {
listen 80;
listen 443 ssl http2;
server_name xxx.xxx;
index index.html;
root /wwwroot/;
# 强制HTTPS
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
ssl_certificate /fullchain.pem;
ssl_certificate_key /privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location /
{
proxy_pass http://127.0.0.1:2368; # Ghost运行地址
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
expires -1;
}
}
最后
上面的配置可以根据自己的需要自行修改相关位置的配置。
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。