我使用 nginx 将代理反向代理到多个 dockerized 应用程序,这些应用程序有效。但我无法让搬运工工作。
我的 nginx 配置包括:
location ^~ /apps/portainer {
proxy_http_version 1.1;
proxy_set_header Connection "";
set $upstream portainer:9000;
proxy_pass http://$upstream;
}
页面未正确加载(css 和 js 未加载)。nginx错误日志:
[错误] open() "/var/www/html/apps/main.11b0c8b84d24581.js" 失败(2:没有这样的文件或目录),请求:"GET /apps/main.11b0c8b84d24581.js HTTP/2.0"
我不明白为什么 nginx 试图提供静态文件 - 一切都应该代理到 portainer。(并且路径是错误的,尽管无关紧要)。
是否有一个不涉及正则表达式的常规修复?顺便说一句,如果您不介意在位置块中使用正则表达式,@EchoMike444 下面给出的答案非常好。
通过遵循 https://portainer.readthedocs.io/en/stable/faq.html中的配置,我能够连接到http://127.0.0.1/apps/portainer/
您缺少管理websocket连接的部分
我
default.conf
的ngnix我的
docker-compose.yaml
评论后更新
因为nginx在启动的时候做dns解析,要使用一个变量,所以
default.conf
变成了这个。