lh1me

Ghost 部署 Nginx 和 HTTPS 配置

有 N 人看过

之所以会有这篇教程,因为我最近在玩 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 国际许可协议 进行许可。