1

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

4

1 回答 1

2

与评论中的 nginx 建议类似,我使用haproxy完成了此操作。

Haproxy 在端口 80 上侦听,将流向流星子域的请求传递到端口 3000,并将其他所有内容留给我移动到端口 8000 的 apache。设置需要几分钟,支持 websockets,我并没有真正注意到 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 
于 2013-07-25T06:49:25.940 回答