Quels sont les avantages de l'exécution d'un server d'applications dans l'espace user, comme Unicorn, par opposition à sudo?

J'ai utilisé Phusion Passenger + Rails / Sinatra pour beaucoup de projets. Le passager court sous le process Nginx ou Apache principal.

Mais je suis intéressé par Unicorn, en partie parce qu'il fonctionne dans l'espace user. Vous venez de configurer les requests Nginx vers proxy_pass vers un socket Unix qui est connecté aux process Unicorn que vous déclarez sous un count d'user normal.

Y a-t-il quelque chose à dire en ce qui concerne les avantages et les inconvénients de ces deux approches alternatives à l'exécution d'une application Web? Je veux dire en termes de facilité d'administration, de stabilité, de simplicité, etc.

3 Solutions collect form web for “Quels sont les avantages de l'exécution d'un server d'applications dans l'espace user, comme Unicorn, par opposition à sudo?”

Je dis racine ici lorsque vous dites que sudo – sudo élève un user aux privilèges de la racine, mais c'est essentiellement le même.

Eh bien, les ports à faible numérotation ne sont disponibles que pour les users root, donc, dans de nombreux cas, l'exécution d'une application, car un user régulier peut avoir besoin de modifications de pare-feu.

Avec l'espace user, vous avez la possibilité d'une meilleure compartimentation (au minimum par application / stack, afin que vous puissiez configurer tout dans un endroit et le déplacer facilement entre les systèmes), ou même chroot. En général, éviter d'exécuter des choses car la racine est bonne (plusieurs applications descendent vers «personne» en commençant à éviter de s'exécuter en tant que root) car si un process exécuté en tant que root est compromis, vous pouvez avoir un attaquant pour get des privilèges de root.

Exécuter en tant qu'user régulier est généralement mieux pour la security, l'IMO, mais dépend vraiment de votre application.

Eh bien, Phusion / Nginx / Unicorn s'exécutent sur l'espace user et l'espace kernel, je pense que vous vouliez dire l'utiliser en tant qu'user non privilégié par rapport aux users privilégiés / root . Il y a des avantages:

  1. Plus de security, si votre application fait quelque chose de stupide, elle ne peut pas accéder aux parties critiques du server
  2. La portabilité, l'application est compartimentée sur un seul espace.
  3. Si vous utilisez des rails, vous utilisez probablement capistrano pour le deployment, cela signifie que vous pouvez démarrer le process de licorne directement à partir du process de deployment sans avoir besoin d'un sudo

En plus de cela, je vous suggère d'utiliser l'option de socket Unicorn avec Nginx, ce qui simplifie un peu le process de deployment et lisez le document sur le deployment sans avoir besoin de redémarrer complètement le server de l'application

Comme l'a dit Coredump, ce que vous vouliez dire fonctionne en tant qu'user privilégié en tant qu'user régulier. Mais Phusion Passenger ne fonctionne pas définitivement comme un user privilégié .

  • Tous les process d'application engendrés par Phusion Passenger sont exécutés en tant qu'users réguliers. Plus précisément, en tant qu'user possédant config / environment.rb ou config.ru, pas comme user Apache / Nginx . Cela fait partie de la fonctionnalité "Changement d'user", que Phusion Passenger a eu depuis la version 1.0.
  • Avec Unicorn, vous devez démarrer manuellement les process en tant qu'user souhaité. Phusion Passenger s'occupe automatiquement de cela pour vous.
  • Phusion Passenger refuse absolument d'exécuter tous les process d'application en tant que root. Vous ne pouvez pas replace ce comportement. Phusion Passenger prend la security très au sérieux et a ajouté cette précaution de security.
  • Apache / Nginx ne s'exécute pas comme users privilégiés. Sur la plupart des systèmes, ils sont configurés pour fonctionner sous le count www-data .
  • Il existe des process Phuder Passenger helper qui s'exécutent en tant que root afin qu'ils puissent générer des process en tant qu'autres users, mais vous pouvez désactiver cela en désactivant l'user, auquel cas tous les process Phusion Passenger (y compris les process d'application) exécutent un count user que vous spécifier.

Phusion Passenger est plus simple à administrer et à installer que Unicorn car il automatise plus de choses pour vous. Phusion Passenger est très stable en raison de son architecture de chien de garde. Il surveille ses process d'assistance interne et les redémarre si l'un d'entre eux échoue. Phusion Passenger est utilisé par plus de 150 000 sites Web, y compris les grands noms de marque tels que Pixar, New York Times, AirBnB, Oakley et Symantec. Le prochain Phusion Passenger 4 appenda de nombreuses fonctionnalités liées à la stabilité et à la fiabilité.

  • Soudain, j'ai commencé à connaître d'énormes time d'attente avant que les requests ne soient utilisées
  • Sudo n'effectuera pas de command comme autre user
  • Les instances sont lentes lorsqu'elles sont connectées à l'équilibreur de charge AWS
  • Rails lorsqu'il est desservi par la licorne génère une empreinte digitale incorrecte pour les actifs précompilés
  • Erreur de licorne lors de l'hébergement d'une application Rails avec NGINX
  • Nginx: redirigez http vers https
  • Est-ce que l'IO lent sur mon server cloud provoque mes problèmes de redémarrage du server lent?
  • Blue / Green Rails de test avec nginx + Unicorn
  • Forward IP réelle via Haproxy => Nginx => Unicorn
  • Où le vernis va-t-il généralement dans une stack Web Rails?
  • configurez www.example.com comme exemple.com
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.