Я пытаюсь развернуть свое небольшое веб-приложение Катализатора с помощью Plack/Starman. Вся документация, кажется, предлагает, чтобы я хотел использовать это в сочетании с nginx. Каковы преимущества этого? Почему бы не использовать Астролога прямо на порте 80?
Это не обязательно должен быть nginx, но вам нужен какой-то интерфейсный сервер, проксирующий ваш сервер приложений по нескольким причинам:
Чтобы вы могли запустить сервер Catalyst на высоком порту, как обычный пользователь, при запуске внешнего сервера на порту 80.
Для обслуживания статических файлов (обычных ресурсов, таких как изображения, JS и CSS, а также любых видов загрузок, которые могут вам понадобиться использовать X-Sendfile или X-Accel-Redirect с) без привязки к процессу Perl на время загрузки.
Это упрощает задачу, если вы хотите перейти к более сложной конфигурации, включающей, например, Edge Side Includes, или наличие веб-сервера, обслуживаемого непосредственно из memcached или mogilefs (обе вещи, которые может делать nginx), или конфигурация балансировки нагрузки / высокой доступности.
Я задал этот вопрос на #plack и получил следующий ответ от @nothingmuch (я добавил форматирование):
В nginx вы можете настроить loadbalancing/failover type stuff. Если сайт маленький/простой, это может быть излишеством.
Я не знаю никаких недостатков, которые может иметь Starman. Возможно, если у вас много обращений к статические файлы, nginx будет использовать меньше процессора/памяти для их обработки, но это вряд ли будет существенным для типичном веб-приложении. Большие загрузки могут связать рабочих Starman для загрузки статических файлов хотя. (Возможно, нет, с sendfile.) Это все, что я могу думаю.
...Настройка обхода отказа может быть может быть полезной, если вы хотите проводить обновления без простоя. ("Отказ" старой version.)