Warum läuft der Nginx-Prozess mit dem Benutzer nobody?

16

Ich habe versucht, nginx so einzurichten, dass es mit einer meiner Rails-Apps ausgeführt werden kann. Als ich mir die Ausgabe anschaute ps -e | grep nginx, wurde mir klar, dass Nginx-Worker-Prozesse mit dem Benutzer nobody ausgeführt werden.

Gibt es einen Grund, warum sie nicht als WWW-Daten ausgeführt werden?

mu 無
quelle
1
Scheint eine vernünftige Frage zu sein, die zu einer aussagekräftigen Antwort führte - warum hat der Fragesteller einen Punkt verfehlt?
kein Patch

Antworten:

25

Gibt es einen Grund, warum sie nicht als WWW-Daten ausgeführt werden?

Ja. Sie haben den Benutzer höchstwahrscheinlich nicht in Ihrer Nginx-Konfiguration angegeben .

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

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

Wie führe ich nginx als bestimmten Benutzer aus?

Sie können den Benutzer / die Gruppe, unter der / der nginx ausgeführt wird, in der nginx-Konfiguration angeben.

Dies ist ein Beispiel, wie eine Nginx-Konfiguration aussehen könnte (beachten Sie die Benutzeranweisung):

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
}

Aktualisiere einfach deine Konfiguration und lade dann nginx neu oder starte es neu.

Natürlich sollten Sie den Benutzer auswählen, der für Ihr System am besten geeignet ist. In Debian / Ubuntu gibt es standardmäßig WWW-Daten, das ist also eine vernünftige Wahl.

Drew Khoury
quelle
www-data ist nach meinem Verständnis eher der Eigentümer / die Gruppe von / var / www und es ist keine gute Idee, denselben Benutzer für den nginx-Prozess zu verwenden ( stackoverflow.com/questions/22336186/… ). Eine Neuinstallation von nginx über apt unter debian wird der benutzer nginx verwendet. Vielleicht möchten Sie das Beispiel so ändern, dass der Benutzer nginx verwendet wird.
Binäranomalie
4

Der Master-Prozess wird als root ausgeführt, dann wird setuid()/ setgid()nach USER/ von nginx ausgeführt GROUP. Wenn GROUPnicht angegeben, verwendet nginx den gleichen Namen wie USER.

Standardmäßig ist es nobodyBenutzer- und / nobodyoder Nogroup-Gruppe oder das --user=USERund --group=GROUPaus dem ./configureSkript.

Sie können nginx.conf und bearbeiten set user to www www;

ankso
quelle