Dockercompose,Nginx,解析器不起作用

时间:2019-01-15 09:36:30

标签: docker nginx docker-compose nginx-reverse-proxy

我将Nginx容器用于此配置:

var database = require(__dirname + '/components/database.js');
var db = database({});

这是必需的,因为在启动nginx时,“ ui”容器不一定会启动。这样可以避免“在上游找不到主机...”错误。

但是现在即使ui容器已启动并正在运行,我也得到404(它们都在docker-compose.yml中定义的同一网络中)。当我通过不带变量,不带解析器的代理传递并首先启动ui容器时,一切正常。

现在我正在寻找为什么docker无法解决它的原因。我是否可以手动将虚假路由添加到http://ui,当用户界面容器启动时该路由会被替换?那会在哪里?还是可以修复解析器?

2 个答案:

答案 0 :(得分:0)

首先,您需要确保端口在EXPOSE 9000的ui后端Dockerfile中。然后,您将需要使用它作为配置:

http {
  upstream ui {
    server ui:9000;
  }

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

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

答案 1 :(得分:0)

答案类似于这篇文章:

https://stackoverflow.com/a/52319161/3093499

唯一的变化是将解析器和set变量放到服务器主体中而不是位置中。