nginx 从 foo.bar/app 正确反向加载资产

nginx reverse load assets from foo.bar/app properly

我在同一容器网络上的 nginx 反向代理后面的 docker 容器中有一个 Web 应用程序 运行。 nginx 设置为 foo.bar/app 重定向到容器,但应用程序似乎尝试从 foo.bar/ 加载资源。我已尝试执行此处记录的操作:https://www.nginx.com/resources/wiki/start/topics/examples/likeapache/ 结果我的位置块看起来像这样:

location /app {
        root /app;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://webapp/;
    }

其中 webapp 是网络中 webapp docker 容器的名称

对于位置块,这很好

location /app {
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://webapp/;
    }

诀窍是使用尾部斜杠访问 foo.bar/app/ 而不是 foo.bar/app 另外添加此行将自动添加尾部斜杠:

rewrite ^([^.]*[^/])$ / permanent