Dockercompose、Nginx、解析器不工作

7jmck4yq  于 2022-11-21  发布在  Nginx
关注(0)|答案(3)|浏览(171)

我使用了一个nginx容器,配置如下:

set $ui http://ui:9000/backend;
resolver 127.0.0.11 valid=5m;
proxy_pass $ui;

这是必需的,因为当nginx启动时,“ui”容器不一定要打开。这避免了“在上游找不到主机...”的错误。
但是现在我得到了一个404,即使ui-container已经启动并运行了(它们都在docker-compose.yml中定义的同一个网络中)。
现在我在寻找为什么docker无法解析它。我是否可以手动添加一个伪路由到http://ui,当ui容器启动时它会被替换?它会在哪里?或者我可以修复解析器吗?

fzwojiic

fzwojiic1#

答案就像在这个帖子里:
https://stackoverflow.com/a/52319161/3093499
唯一的变化是将解析器和设置变量放入server-body而不是位置。

mzmfm0qo

mzmfm0qo2#

首先,你需要确保你在UI后端的Dockerfile中有EXPOSE 9000的端口,然后你需要把这个作为你的配置:

http {
  upstream ui {
    server ui:9000;
  }

  server {
    # whatever port your nginx reverse proxy is listening on.
    listen 80;

    location / {
      proxy_pass http://ui/backend;
    }
  }
wfsdck30

wfsdck303#

http
{
server {        
        ssl_certificate         /etc/tls/tls.crt;
        ssl_certificate_key     /etc/tls/tls.key;

        resolver 127.0.0.11;
        resolver_timeout      10s;

        access_log              /var/log/nginx/access_log.log;

        location / {
                set             $upstream_app homer;
                set             $upstream_port 8080;
                set             $upstream_proto http;
                proxy_pass      http://localhost:7001;
        }
}
}

我也工作过

相关问题