Я использую Phusion Passenger + Rails / Sinatra для множества проектов. Пассажир работает под управлением основного процесса Nginx или Apache.
Но меня интересует Unicorn отчасти потому, что он работает в пользовательском пространстве. Вы просто настроили Nginx для запросов proxy_pass к сокету unix, который подключен к процессам Unicorn, которые вы запускаете под обычной учетной записью пользователя.
Можно ли что-нибудь сказать о преимуществах и недостатках этих двух альтернативных подходов к запуску веб-приложения? Я имею в виду простоту администрирования, стабильность, простоту и т. Д.
Ну, Phusion / Nginx / Unicorn все работают в пространстве пользователя и ядра, я думаю, вы хотели сказать, что запускаете его как непривилегированный пользователь против привилегированный пользователь / пользователь root. В этом есть ряд преимуществ:
Кроме того, я предлагаю вам использовать опцию сокета Unicorn с Nginx, которая немного упрощает процесс развертывания, и прочитать документ о развертывание без необходимости полного перезапуска сервер приложений
Я говорю здесь root, когда вы говорите sudo - sudo повышает права пользователя до уровня root, но по сути это то же самое.
Ну, порты с маленькими номерами доступны только для пользователей root, поэтому во многих случаях для запуска приложения от имени обычного пользователя могут потребоваться некоторые изменения брандмауэра.
С пользовательским пространством у вас есть возможность лучшего разделения (как минимум для каждого приложения / пользователей стека, чтобы вы могли настроить все в одном месте и легко перемещать его между системами) или даже chroot. В целом, избегать запуска чего-либо от имени root - это хорошо (многие приложения при запуске опускаются до «none», чтобы избежать запуска от root), поскольку, если процесс, запущенный с root-правами, скомпрометирован, вы можете получить привилегии root у злоумышленника.
Запуск от имени обычного пользователя обычно лучше для безопасности, IMO, но действительно зависит от вашего приложения.
Как сказал coredump, вы имели в виду, что он работает как привилегированный пользователь, а не как обычный пользователь. Но Phusion Passenger определенно не запускается как привилегированный пользователь..
www-data
учетная запись.Phusion Passenger проще в администрировании и установке, чем Unicorn, потому что он автоматизирует для вас больше вещей. Phusion Passenger очень стабилен благодаря своей сторожевой архитектуре. Он наблюдает за своими внутренними вспомогательными процессами и перезапускает их, если какой-либо из них выходит из строя. Phusion Passenger используется более 150 000 сайтов включая крупные торговые марки такие как Pixar, New York Times, AirBnB, Oakley и Symantec. Предстоящий Phusion Passenger 4 добавит кучу дополнительных функций, связанных со стабильностью и надежностью.