首页 > 解决方案 > 幽灵博客和混合活动内容

问题描述

我正在尝试在 NGINX 反向代理后面使用 Ghost 发布博客。但是,我面临 1 个小问题,这意味着无法在博客文章中加载图像等内容。查看开发工具后,我注意到这是由于加载了混合活动内容(HTTP 请求而不是 HTTPS)。有趣的是,这在移动设备上工作得非常好,因为它们不会阻止 HTTP 内容。

我的幽灵博客设置为http://blog.jamdoog.com因为https://blog.jamdoog.com地址导致无限重定向。除此之外,我不确定我打算如何为 HTTPS 方面创建反向代理文件。

我正在使用的设置是带有 NGINX for Ghost 的反向代理,然后是“边缘”节点上的第二个反向代理。这样我就可以将我的内容分发到离观众更近的服务器上。

我附上了我的设置如何工作和我的 NGINX 配置文件的图表。

正在提供的 Web 内容的图像

博客服务器上的 NGINX 配置:

server {
    listen 80;

    server_name blog.jamdoog.com;
    root /var/www/ghost/blog.jamdoog.com/system/nginx-root;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host blog.jamdoog.com;
        proxy_pass http://127.0.0.1:2368;

    }

   location ~ /.well-known {
        allow all;
    }

    client_max_body_size 50m;
}

边缘服务器上的 NGINX 配置:

upstream blog.jamdoog.com
{
        server blog.jamdoog.com;
}
server {
        server_name blog.jamdoog.com;
        access_log /var/log/nginx.access.log;
        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://IPOfBlog;
                proxy_set_header Host blog.jamdoog.com;
                client_max_body_size 10m;
                client_body_buffer_size 128k;
                proxy_connect_timeout 90;
                proxy_send_timeout 90;
                proxy_read_timeout 90;
                proxy_buffers 32 4k;
                proxy_cache proxy-cache;
                proxy_cache_valid 200 302 30m;
                proxy_cache_valid 404 1m;
                proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
        }

        location ^~ /ghost {
                proxy_ignore_headers Cache-Control;
                add_header X-Cache-Status $upstream_cache_status;
        }

        listen 443 ssl;
        ssl_certificate /path/to/fullchain.cer;
        ssl_certificate_key /path/to/the.key;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}


server {
    if ($host = blog.jamdoog.com) {
        return 301 https://$host$request_uri;
    }


        listen 80;

        server_name blog.jamdoog.com;
    return 404; # managed by Certbot


}

谢谢你。

编辑:为了澄清,我正在寻求有关 NGINX 配置的帮助,以允许我在默认情况下将 Ghost 与 SSL 一起使用,以重定向到 HTTPS。这将解决这个问题。

或者,一种使幽灵利用相对路径的方法。

标签: nginxredirecthttpsreverse-proxyghost-blog

解决方案


推荐阅读