web-dev-qa-db-fra.com

Pourquoi Nginx Process est-il exécuté avec l'utilisateur personne

J'essayais de configurer Nginx pour courir avec l'un de mes Rails Apps, lorsqu'il s'agit d'examiner la sortie pour ps -e | grep nginx, J'ai réalisé que Nginx Travailler Les processus fonctionnent avec l'utilisateur personne.

Y a-t-il une raison pour laquelle ils ne fonctionnent pas comme www-Data?

16
mu 無

Y a-t-il une raison pour laquelle ils ne fonctionnent pas comme www-Data?

Oui. Vous avez le plus probablement n'a pas spécifié l'utilisateur dans votre Nginx Config .

Directive utilisateur: http://nginx.org/en/docs/ngx_core_module.html#user

syntax: user user [group];
default:    
user nobody nobody;
context:    main

Comment exécuter Nginx en tant qu'utilisateur particulier?

Vous pouvez spécifier l'utilisateur/groupe que NGinx fonctionne comme dans la configuration NGinx.

Ceci est un exemple de ce qu'une configuration NGinx pourrait ressembler (remarquez la directive utilisateur):

pid                 /path/to/nginx.pid;
user                www-data www-data;
worker_processes    1;

events {
   worker_connections  1024; # usually 1024 is a good default
}

http {
   # more code goes here
}

Mettez simplement à jour votre configuration puis rechargez ou redémarrez NGinx et vous devriez être bon à partir.

Bien sûr, vous devriez choisir l'utilisateur qui fonctionne le mieux pour votre système, dans Debian/Ubuntu, il existe des données www par défaut, c'est donc un choix sensible.

25
Drew Khoury

Le processus maître est exécuté en tant que root, puis Nginx setuid()/setgid() à USER/GROUP. Si GROUP n'est pas spécifié, Nginx utilise le même nom que USER.

Par défaut, il est nobody utilisateur et nobody ou groupe de nogroupes ou le --user=USER et --group=GROUP du ./configure script.

Vous pouvez éditer nginx.conf et set user to www www;

4
ankso