2015-06-22 80 views
1

好吧,现在一直在尝试这个设置一整天。我无法让Nginx将azure给我的域名连接到我的nodedocker容器。docker nginx负载均衡不适用于Azure

我使用Azure创建一个​​。 的DNS namescout-1j013s34.cloudapp.netvirtual IP address191.237.66.86

我可以ssh到​​与ssh [email protected] -p 61777。我不知道为什么我需要指定一个端口?

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

我发现,跟着下面的教程A sample Docker workflow with Nginx, Node.js and Redis

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

docker processes

这里是我的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/到浏览器地址栏,超时。

更新: 我有EXPOSE 1337Dockerfile揭露1337个端口,每个节点的容器。

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

然后,我开始nginx的容器,并将其与命令联系到3个容器docker run -d --name nginx -p 80:80 --link node1:node1 --link node2:node2 --link node3:node3 mlennie/nginx

+0

你的Nginx日志里有什么?你有[链接](https://docs.docker.com/userguide/dockerlinks/)节点到你的Nginx容器?你有暴露端口1337的节点? – OrangeTux

+0

@OrangeTux我刚刚更新了问题来回答你的问题。我只是将日志记录路径添加到nginx.conf文件。所以我会尽力找到日志。我相信我确实将节点链接到了nginx,并且我在dockerfile的节点上公开了1337端口。 –

回答

2

好吧,我得到它的工作,我需要手动添加通过Azure的管理门户的端点的80

端口
+0

默认情况下,只有管理端口处于打开状态(SSH),您需要手动打开所需的端点。 – jangelfdez