2016-02-14 2 views
1

Я знаю, что сервер узлов cache.js кэширует. Таким образом, после запуска сервера все файлы «компилируются», и все ваши изменения кода могут вступить в силу после перезапуска сервера.Как вы создаете динамический веб-сервер node.js? (сервер обновлений без уведомления)

Но если на сайте всегда есть сотни пользователей в Интернете - как вы можете внести эти изменения (перезапустить сервер) таким образом, чтобы ваши сотни клиентов не заметили никаких проблем, простоев?

Пожалуйста, дайте мне руководство и (свои) примеры о масштабируемости, балансировке нагрузки на серверах и т. Д., Поэтому я могу сделать потрясающий большой и динамичный веб-сайт с node.js тоже.

+0

Возможный дубликат [Как я могу редактировать на моем серверных файлов без перезагрузки nodejs, когда я хочу увидеть изменения?] (http://stackoverflow.com/questions/2925940/how-can-i-edit-on-my-server-files-without-restarting-nodejs-when -i-want-to-see-t) – FuzzyTree

ответ

2

Лучший способ обеспечить непрерывное время работы с помощью Node.JS состоит в том, чтобы иметь 2 сервера узлов и прокси-сервер для них с использованием поставщиков nginx и upstream. Таким образом, вы можете перезапустить один, в то время как другой принимает нагрузку на трафик, а затем сделать то же самое с другим сервером узлов.

Конфигурация Nginx будет использовать что-то похожее на ниже:

upstream backend { 
    server backend1.example.com  weight=5; 
    server backend2.example.com:8080; 
    server unix:/tmp/backend3; 

    server backup1.example.com:8080 backup; 
    server backup2.example.com:8080 backup; 
} 

server { 
    location/{ 
     proxy_pass http://backend; 
    } 
} 

Для получения дополнительной информации о Nginx проксирование и вверх по течению поставщиков увидеть Nginx документация: http://nginx.org/en/docs/http/ngx_http_upstream_module.html

+0

Согласитесь с TheBANHAMMER, я бы хотел упомянуть, если вы используете pm2 в clustermode, попробуйте reloa d сервер каждый раз, когда вы хотите перезапустить сервер узла (перезагрузка перезапускает узел сервера изящно). Так что, если ваш один сервер обслуживает и находится между вами, перезагружается, он ожидает, что этот запрос будет успешно обработан, а затем перезагружается. пм2 gracefulReload все Я предполагаю, что вы уже изучили идею использования PM2 в кластере не mode.If затем пройти через этот https://keymetrics.io/2015/03/26/pm2-clustering-made- легко/ –