【问题标题】:docker nginx load balancing not working with Azuredocker nginx 负载平衡不适用于 Azure
【发布时间】:2015-06-22 11:27:55
【问题描述】:

好的,现在尝试此设置一整天。我无法让 Nginx 将 azure 给我的域名连接到我的 node docker 容器。

我正在使用Azure 创建一个VMDNS namescout-1j013s34.cloudapp.net virtual IP address191.237.66.86

我可以通过ssh monty@scout-1j013s34.cloudapp.net -p 61777ssh 加入VM。我不确定为什么需要指定端口?

VM 正在运行 Ubuntu 14.04。 我自己安装了docker

我找到并遵循了以下教程A sample Docker workflow with Nginx, Node.js and Redis

我构建并运行了容器,如下所示。

这是我的nginx.conf 文件

worker_processes 4;

events { worker_connections 1024; }

http {

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;


    upstream node-app {
          least_conn;
          server node1:1337 weight=10 max_fails=3 fail_timeout=30s;
          server node2:1337 weight=10 max_fails=3 fail_timeout=30s;
          server node3:1337 weight=10 max_fails=3 fail_timeout=30s;
    }

    server {
          listen 80;

              server_name 191.237.66.86 scout-1j013s34.cloudapp.net www.scout-1j013s34.cloudapp.net;

          location / {
            proxy_pass http://node-app;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
          }
    }
}

当我在浏览器地址栏中输入http://scout-1j013s34.cloudapp.net/ 时,它会超时。

更新: 我的Dockerfile 中有EXPOSE 1337,用于公开每个节点容器的1337 端口。

对于每个节点容器,我运行 docker run -it --name node1 --link mongo:MONGODB -v /home/monty/scout/backend-api/:/scout-sails mlennie/scout-sails bash 将名称更改为 node2 和 node3 为接下来的 2 然后我进入每个容器并使用 sails lift 启动 sails.js 应用程序。

然后我启动了 nginx 容器并用命令docker run -d --name nginx -p 80:80 --link node1:node1 --link node2:node2 --link node3:node3 mlennie/nginx将它链接到3个节点容器

【问题讨论】:

  • 你的 Nginx 日志中有什么?你有linked 到你的 Nginx 容器的节点吗?你有没有暴露节点上的 1337 端口?
  • @OrangeTux 我刚刚更新了问题以回答您的问题。我刚刚在 nginx.conf 文件中添加了日志路径。所以我会尝试找到日志。我相信我确实将节点链接到 nginx,并且确实在 dockerfile 中的节点上公开了 1337 端口。

标签: node.js azure nginx docker sails.js


【解决方案1】:

好的,我知道了,我需要通过 Azure 管理门户手动添加一个端点,端口为 80。

【讨论】:

  • 默认情况下只打开管理端口(SSH),您需要手动打开您需要的端点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 2023-03-14
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
相关资源
最近更新 更多