proxy_pass nginx 到网络上的 docker 容器

问题描述 投票:0回答:0

使用 nginx,我正在尝试为 /test 设置一个端点以重定向到我在网络上的端口 5000 上运行的 docker 容器

我正确获取了页面,但是无法为该页面加载必要的资产。查看错误日志,它正在寻找资产的错误目录。

我当前的配置:

server{
    server_name domain;
    listen 90;
    access_log /etc/nginx/conf.d/access.log;
    error_log /etc/nginx/conf.d/error.log;

    location /test{
        proxy_pass http://myip:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
    }
}

这将返回一个空白页面,但标题是正确的并且与容器名称相对应。

奇怪的是,当使用 / 位置时,它工作得很好:

server{
    server_name domain;
    listen 90;
    access_log /etc/nginx/conf.d/access.log;
    error_log /etc/nginx/conf.d/error.log;

    location /{
        proxy_pass http://myip:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
    }
}

查看访问和错误日志,当使用 / 位置时,它从 /assets/icons/example.file 加载文件。这个目录实际上并不存在于我的机器上,我假设这是来自 docker 容器。

虽然使用 /test 位置时,它会尝试从 /usr/share/nginx/html/assets/icons/example.file 加载文件,但失败了, 导致空白页。

使用互联网上找到的所有类型的解决方案,我已经坚持了好几天,我们将不胜感激。

我试过设置不同的别名/根,比如/,但无济于事。

docker nginx debian reverse-proxy
© www.soinside.com 2019 - 2024. All rights reserved.