Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
Meteor 流星部署战略_Meteor - Fatal编程技术网

Meteor 流星部署战略

Meteor 流星部署战略,meteor,Meteor,我有一个meteor部署,我希望在已经运行apache的服务器的端口80上运行。我需要一个子域来指向meteor部署。我已经尝试使用apache的mod_代理来创建一个到子域的代理,meteor部署在端口8080上。但是,mod_代理不适用于web套接字。我也尝试过使用mod_proxy_wstunel模块,但这似乎也不起作用。服务器有5个IP。因此,我还考虑将meteor部署在与部署apache的IP不同的IP上。然而,流星似乎绑定到所有5个IP。我找不到一种方法将meteor与其他IP解除绑

我有一个meteor部署,我希望在已经运行apache的服务器的端口80上运行。我需要一个子域来指向meteor部署。我已经尝试使用apache的mod_代理来创建一个到子域的代理,meteor部署在端口8080上。但是,mod_代理不适用于web套接字。我也尝试过使用mod_proxy_wstunel模块,但这似乎也不起作用。服务器有5个IP。因此,我还考虑将meteor部署在与部署apache的IP不同的IP上。然而,流星似乎绑定到所有5个IP。我找不到一种方法将meteor与其他IP解除绑定并仅绑定到一个IP。有什么办法可以解决这个问题吗?

类似于评论中的nginx建议,我用了

Haproxy侦听端口80,将请求传递到meteor的子域到端口3000,并将所有其他内容留给apache,我将其移动到端口8000。安装花了几分钟时间,支持WebSocket,我没有注意到haproxy正在运行

我的haproxy配置基于上面的链接,如下所示:

# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
  daemon
  log /dev/log local0 info
  log /dev/log local0 notice

defaults
  log global
  maxconn 4096
  mode http
  option http-server-close
  option httplog
  option dontlognull
  timeout connect 5s
  timeout client 30s
  timeout server 30s

frontend public
  # HTTP
  bind :80
  use_backend meteor if { hdr_end(Host) meteorSubdomain.yourDomain.com }

  default_backend apache

backend meteor
  server meteor1 127.0.0.1:3000

backend apache
  server apache1 127.0.0.1:8000 

请看我的答案,谢谢。现在,我们在端口80上的一个单独的服务器上部署了meteor,一切正常。虽然不是最优雅的解决方案,但它确实有效。将nginx放在两台服务器前面并通过http主机名进行路由怎么样?通过Apache代理的资源密集度要低得多(并且可以满足任何SSL要求,如果需要,还可以实现负载平衡)。