Метеор на многосетевом сервере?
У кого-нибудь есть опыт работы с Meteor на многосетевых серверах? Мы запускаем приложение в производство, и у нас есть несколько серверов с двумя сетевыми картами на каждом. Один интерфейс eth0 подключается к нашей внутренней сети с нашим кластером Mongo, а другой интерфейс eth1 подключается к нашей DMZ. Мы хорошо прошли прошлый этап разработки и находимся в стадии разработки. Итак, речь идет о запуске следующей команды только на eth1:
MONGO_URL = 'mongodb: // mongodb: 27017 /? ReplicaSet = meteor' PORT = '80 'ROOT_URL =' http://app.domain.org/'узел main.js
Я не знаю достаточно об узле, чтобы точно знать, как указать один интерфейс. Это указано с переменной среды? В нашем файле / etc / network / interfaces? Iptables? Что-то другое?
Я нахожу в Интернете ресурсы, подобные следующим, но я не уверен, что нахожусь на правильном пути с ними. Требует ли такой суеты получение сервера node.js, работающего на определенном интерфейсе? Есть ли что-то проще?
https://gist.github.com/logicalparadox/2142595
как установить node.js в качестве службы на частном сервере?[не может получить доступ к приложению узла]
Любая помощь приветствуется! Спасибо!
камеристка
2 ответа
Метеор будет слушать 0.0.0.0
(все интерфейсы), если вы не указали переменную среды BIND_IP
,
Явно - значение 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
Итак, все работает. Вторая сетевая карта не была настроена.
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