如何配置 nginx proxy_pass 以从 https 网站提供 http 图像?

如何配置 nginx proxy_pass 以从 https 网站提供 http 图像?

我有 django 网站和远程图像存储。例如,我想/images/从 django 代理到服务器 10.0.0.40/images/

location /images/ {
    proxy_pass http://10.0.0.40/images/;
}

没有错误nginx。但是 django 返回Page not found我应该设置一些东西urls.py还是配置不是那么简单?而且它在 Chrome 浏览器中能用吗?因为 https -> http 在 Chrome 中不起作用。

预期的:

test.com/images/test.jpg ->http://10.0.0.40/图像/测试.jpg

答案1

尝试使用以下请求搜索手册:“nginx 如何使用 https 设置反向代理”(或类似内容)。它会为您提供许多有关如何将 HTTPS 连接代理到 HTTP 服务器的手册。(proxy_set_header X-Forwarded-Proto $scheme;我想,包括您错过的信息。)

奖金:

NGINX proxy_pass 的文档

请求 URI 传递到服务器如下:

如果 proxy_pass 指令指定了 URI,那么当请求传递到服务器时,规范化请求 URI 中与位置匹配的部分将被指令中指定的 URI 替换:

        location /name/ {
            proxy_pass http://127.0.0.1/remote/;
        }

如果指定了 proxy_pass 但没有指定 URI,则在处理原始请求时,请求 URI 将以客户端发送的相同形式传递给服务器,或者在处理更改的 URI 时传递完整的规范化请求 URI:

        location /some/path/ {
            proxy_pass http://127.0.0.1;
        }

对于您来说,您可以使用它来重写您的指令,如下所示:proxy_pass http://10.0.0.40;

相关内容