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?
Antworten:
Ja. Sie haben den Benutzer höchstwahrscheinlich nicht in Ihrer Nginx-Konfiguration angegeben .
Benutzerrichtlinie: http://nginx.org/en/docs/ngx_core_module.html#user
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):
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.
quelle
Der Master-Prozess wird als root ausgeführt, dann wird
setuid()
/setgid()
nachUSER
/ von nginx ausgeführtGROUP
. WennGROUP
nicht angegeben, verwendet nginx den gleichen Namen wieUSER
.Standardmäßig ist es
nobody
Benutzer- und /nobody
oder Nogroup-Gruppe oder das--user=USER
und--group=GROUP
aus dem./configure
Skript.Sie können nginx.conf und bearbeiten
set user to www www;
quelle