perché il processo nginx funziona con nessuno utente


16

Stavo cercando di configurare nginx per l'esecuzione con una delle mie app rails, quando ps -e | grep nginxho dato un'occhiata all'output per , mi sono reso conto che i processi di lavoro di nginx sono eseguiti con l'utente nessuno.

C'è un motivo per cui non vengono eseguiti come dati www?


1
Sembra una domanda ragionevole che ha portato a una risposta informativa: perché l'interrogatore è stato criticato?
Non una patch

Risposte:


25

C'è un motivo per cui non vengono eseguiti come dati www?

Sì. Molto probabilmente non hai specificato l'utente nella tua configurazione nginx .

Direttiva per l'utente: http://nginx.org/en/docs/ngx_core_module.html#user

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

Come eseguire nginx come utente particolare?

È possibile specificare l'utente / gruppo su cui viene eseguito nginx, nella configurazione di nginx.

Questo è un esempio di come potrebbe apparire una configurazione nginx (notare la direttiva dell'utente):

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
}

Aggiorna semplicemente la tua configurazione e quindi ricarica o riavvia nginx e dovresti essere pronto per partire.

Ovviamente dovresti scegliere l'utente che funziona meglio per il tuo sistema, in Debian / Ubuntu ci sono dei dati www per impostazione predefinita, quindi questa è una scelta sensata.


www-data è a mio avviso piuttosto il proprietario / gruppo di / var / www e non è una buona idea usare lo stesso utente per il processo nginx ( stackoverflow.com/questions/22336186/… ) Una nuova installazione di nginx tramite apt su debian usa l'utente nginx. Forse vorresti cambiare l'esempio usando l'utente nginx.
binaryanomaly

4

Il processo principale viene eseguito come root, quindi nginx sarà setuid()/ setgid()a USER/ GROUP. Se GROUPnon viene specificato, nginx utilizza lo stesso nome di USER.

Per impostazione predefinita, è l' nobodyutente e / nobodyo il gruppo di nogroup o lo --user=USERe --group=GROUPdallo ./configurescript.

È possibile modificare nginx.conf e set user to www www;

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.