Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用docker swarm扩展node.js express应用程序_Node.js_Docker_Docker Compose_Docker Swarm - Fatal编程技术网

使用docker swarm扩展node.js express应用程序

使用docker swarm扩展node.js express应用程序,node.js,docker,docker-compose,docker-swarm,Node.js,Docker,Docker Compose,Docker Swarm,我正在尝试扩展在docker swarm中运行的express服务器。 当运行我的堆栈时,同一台机器上有两个express server的副本,一切正常,但只要我向swarm添加另一台服务器,并且我的express app在每台服务器上运行一个容器,问题就开始了 我遇到的问题是: 来自用户界面的POST请求 选项预飞行已执行-从我的后端获取204个状态代码 请求挂起,邮件未发送 我所尝试的: 我试图看看它是否与CORS有关,但我不这么认为,因为我已经设法使它在一台服务器上工作,而这台服务器与前端

我正在尝试扩展在docker swarm中运行的express服务器。 当运行我的堆栈时,同一台机器上有两个express server的副本,一切正常,但只要我向swarm添加另一台服务器,并且我的express app在每台服务器上运行一个容器,问题就开始了

我遇到的问题是:

  • 来自用户界面的POST请求
  • 选项预飞行已执行-从我的后端获取204个状态代码
  • 请求挂起,邮件未发送
  • 我所尝试的:

  • 我试图看看它是否与CORS有关,但我不这么认为,因为我已经设法使它在一台服务器上工作,而这台服务器与前端的来源也不同

  • 尝试仅在工作节点(我添加到集群的新节点)上运行express应用程序,它成功地获得了对它的post请求

  • 尝试仅在主节点上运行应用程序-成功了

  • 这两台服务器都支持我创建的负载平衡器(不知道在express中这是否是一个问题) 两台服务器都在aws上的EC2实例上运行 基础图像-节点:8-1
    快速版本:“express”:“^4.17.1”,

    过了一会儿,我发现问题在于我没有在两个ec2实例的公共IP上运行swarm

    确保在初始化swarm时,您在服务器的公共ip上侦听

    docker swarm init——广告地址


    加入swarm也是一样。

    过了一段时间,我发现问题在于我没有在两个ec2实例的公共IP上运行swarm

    确保在初始化swarm时,您在服务器的公共ip上侦听

    docker swarm init——广告地址


    加入swarm也是一样。

    两台服务器拥有相同的DNS是什么意思?您正在使用DNS负载平衡吗?@slebetman,每个IP都有一个A记录-例如,A-->smart.mydomain.com-->ip1 A-->smart.mydomain.com-->IP2用于相同的域名?@slebetman,是的。这就是问题所在吗?因为我已经读到,同一子域可以有2个记录,具有不同的IP@slebetman。你说这两个服务器具有相同的DNS是什么意思?您正在使用DNS负载平衡吗?@slebetman,每个IP都有一个A记录-例如,A-->smart.mydomain.com-->ip1 A-->smart.mydomain.com-->IP2用于相同的域名?@slebetman,是的。这就是问题所在吗?因为我已经读到,对于同一子域,可以有两个不同IP@slebetman的记录