我有一个meteor部署,我希望在已经运行apache的服务器的端口80上运行。我需要一个子域来指向流星部署。我已经尝试使用apache的mod_proxy来创建子域的代理,并在端口8080上部署meteor。但是,mod_proxy不适用于Web套接字。我也尝试使用mod_proxy_wstunnel模块,但似乎也没有用。服务器有5个IP。所以,我还想过将meteor部署在与部署了apache的IP不同的IP上。但是,流星似乎绑定了所有5个IP。我找不到一种方法将流星与其他Ips解除绑定并仅绑定到一个。有没有办法解决这个问题?
答案 0 :(得分:2)
与评论中的nginx建议类似,我使用haproxy完成了此操作。
Haproxy侦听端口80,将请求传递到meteor的子域到端口3000,并将其他所有内容留给apache,我移动到端口8000.花了几分钟设置,支持websockets,我并没有真正注意到haproxy正在运行。 / p>
我的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