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