Я разместил это на ServerFault, но сообщество Node.js кажется крошечным, поэтому я надеюсь, что это принесет больше внимания.
У меня есть приложение Node.js(0.4.9), и я изучаю, как его лучше всего развертывать и поддерживать. Я хочу запустить его в облаке (EC2 или RackSpace) с высокой доступностью. Приложение должно работать на HTTPS. Я буду беспокоиться о переходе на Восток/Запад/ЕС позже.
Я много читал о keep-alive (Upstart, Forever), многоядерных утилит (Fugue, multi- node, Cluster) и балансировщиках прокси/нагрузки (node -http-proxy, nginx, Varnish и Pound). Тем не менее, я не уверен, как объединить различные утилиты, доступные мне.
У меня есть эта настройка и вам нужно убрать некоторые вопросы и получить обратную связь.
- Cluster - наиболее активно разработанная и, по-видимому, популярная многоядерная утилита для Node.js, поэтому используйте ее для запуска 1 node "кластера" на сервер приложений на непривилегированном порту (скажем, 3000). Q1: Следует ли использовать Forever, чтобы сохранить кластер в живых или просто лишний?
- Используйте 1 nginx для каждого сервера приложений, работающего на порту 80, просто перейдите на node на порт 3000. Q2:. node -http -proxy будет более подходящим для этой задачи, даже если он не быстро загружает статические файлы gzip или сервера?
- Минимальные 2x серверы, как описано выше, с независимым сервером, выступающим в качестве балансировщика нагрузки в этих коробках. Используйте Pound, прослушивая 443, чтобы завершить HTTPS и передать HTTP в Larnish, который будет циклически распределять баланс нагрузки по IP-адресам серверов выше. Q3: Следует ли использовать nginx для обоих? Q4: Если вместо этого следует учитывать балансировку нагрузки AWS или RackSpace (последняя не завершает HTTPS)
Общие вопросы:
- Вы видите необходимость (2) выше?
- Где лучше всего прекратить HTTPS?
- Если в будущем нужны WebSockets, какие подстановки nginx вы бы сделали?
Мне бы очень хотелось услышать, как люди настраивают текущую производственную среду и какую комбинацию инструментов они предпочитают. Очень ценится.