我有 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;
我想,包括您错过的信息。)
奖金:
请求 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;