我的机器上运行了nginx(:80)和上游服务器(:8080)。
这是我的代码:
location /assets/ {
rewrite ^/assets/(.*) /upstream/$1 break;
proxy_pass http://127.0.0.1:8000;
}
这似乎有效,但在客户端,我得到了重定向的位置:
http://myserver.com/real/file/location.ext
我想隐藏它以便它保持下去:
http://myserver.com/assets/file_id
这背后的想法是让上游服务器找到真实文件的位置,但让nginx服务文件而不放弃它的真实位置。这甚至可能吗?
答案 0 :(得分:0)
首先你在proxy_pass中使用8000,但是你提到你的端口是8080。
其次,删除重写行应该做的伎俩,因为你实际上在这里使用重写规则,永远不会到达proxy_pass行。以下内容应该有效:
location /assets/ {
include proxy_params;
proxy_pass http://127.0.0.1:8080;
}
还有proxy_rewrite和proxy_redirect命令可以帮助你在nginx内部处理这个上游重定向。
希望有所帮助!