我有一个设置,其中有多个使用 docker compose 和一个 Nginx(nginx:1.19-alpine)运行的服务,它充当所有服务的反向代理并提供一些静态文件。
一项服务是 Influxdb 容器 (influxdb:2.1.0-alpine),它为 Web 浏览器提供 UI。
我想反向代理到这个容器,但是这个容器的静态文件有问题。
到目前为止,这是我的规则:
upstream database {
server data-db:8086;
}
server {
listen 80;
location /influx/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://database/;
}
}
当我浏览 http://localhost:8080/influx/ (localhost:8080 是 Nginx)时,出现白屏,
控制台显示找不到静态文件。
在图片中你可以看到,浏览器尝试在 / 而不是 /influx/ 处查找文件。这是一个问题,因为我在 / 上还有其他东西。
我见过类似的问题,但我的设置无法正常运行。
答案1
我想这个问题没有真正的答案。我发现了这个两年前的 Github 问题:https://github.com/influxdata/influxdb/issues/15721
这是一个已知问题,但目前尚未修复。
一种解决方法是使用子域名,这样您就可以在根目录(如 influx.example.com/)上提供 Influx。对于在本地主机上托管,必须在 hosts 文件中添加一个条目,并将该“域”添加到 nginx 的服务器指令中。