【问题标题】:Meteor on Multihomed Server?多宿主服务器上的流星?
【发布时间】:2014-01-24 15:13:21
【问题描述】:

有人有在多宿主服务器上运行 Meteor 的经验吗?我们正在将一个应用程序投入生产,并且有一些服务器每个都有两个网卡。 eth0 上的一个接口通过我们的 Mongo 集群连接到我们的内部网络,另一个接口 eth1 连接到我们的 DMZ。我们已经完成了开发,并且处于捆绑后工作流程中。所以,这是一个只在 eth1 上运行以下命令的问题:

MONGO_URL='mongodb://mongodb:27017/?replicaSet=meteor' PORT='80' ROOT_URL='http://app.domain.org' node main.js

我对节点知之甚少,无法确切知道如何指定单个接口。这是用环境变量指定的吗?在我们的 /etc/network/interfaces 文件中? iptables?还有什么?

我在网上找到了以下资源,但我不确定我是否在正确的轨道上使用它们。让 node.js 服务器在特定接口上运行需要这种大惊小怪吗?有更简单的吗?

https://gist.github.com/logicalparadox/2142595
how to set node.js as a service on a private server?[can't access the node application]

任何帮助将不胜感激!谢谢!
阿比盖尔

【问题讨论】:

  • 您希望您的应用可以从两个网卡访问还是仅通过 DMZ 访问?

标签: node.js interface meteor production multihomed


【解决方案1】:

除非您指定环境变量 BIND_IP,否则 Meteor 将侦听 0.0.0.0(所有接口)。

明确地-BIND_IP 的值作为hostname 参数传递给http://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback

来源:https://github.com/meteor/meteor/blob/master/packages/webapp/webapp_server.js#L541

【讨论】:

    【解决方案2】:

    好的,一切正常。未配置第二个以太网卡。

    sudo nano /etc/network/interfaces    
      auto eth0
      iface eth0 inet static
          address aaa.bbb.ccc.ddd
          gateway aaa.bbb.ccc.eee
    
      auto eth1
      iface eth1 inet static
          address aaa.bbb.ccc.fff
          gateway aaa.bbb.ccc.ggg
    
    sudo ifconfig eth1 up
    sudo /etc/init.d/networking restart
    

    然后必须确保防火墙正常工作......

    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT    
    sudo iptables -L -n -v
    

    然后确认该站点在正确的 IP 地址上运行,并带有很大的卷曲...

    curl -XGET http://aaa.bbb.ccc.fff/main.js
    

    【讨论】:

      猜你喜欢
      • 2011-12-10
      • 2019-08-08
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 2023-04-08
      相关资源
      最近更新 更多