mengapa proses nginx berjalan dengan tidak ada pengguna

16

Saya mencoba men-setup nginx untuk dijalankan dengan salah satu aplikasi rails saya, ketika melihat outputnya ps -e | grep nginx, saya menyadari proses pekerja nginx berjalan dengan tidak ada pengguna.

Apakah ada alasan mengapa mereka tidak berjalan sebagai www-data?

mu 無
sumber
1
Tampak pertanyaan yang masuk akal yang mengarah pada jawaban yang informatif - mengapa penanya itu tidak benar?
bukan tambalan

Jawaban:

25

Apakah ada alasan mengapa mereka tidak berjalan sebagai www-data?

Iya. Anda kemungkinan besar belum menentukan pengguna di konfigurasi nginx Anda .

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

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

Bagaimana menjalankan nginx sebagai pengguna tertentu?

Anda dapat menentukan pengguna / grup yang dijalankan oleh nginx, di konfigurasi nginx.

Ini adalah contoh tampilan konfigurasi nginx (perhatikan arahan pengguna):

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
}

Cukup perbarui konfigurasi Anda dan kemudian muat ulang atau mulai ulang nginx dan Anda harus melakukannya dengan baik.

Tentu saja Anda harus memilih pengguna yang paling cocok untuk sistem Anda, di Debian / Ubuntu ada www-data secara default, jadi itu pilihan yang masuk akal.

Drew Khoury
sumber
www-data untuk pemahaman saya bukan pemilik / grup / var / www dan itu bukan ide yang baik untuk menggunakan pengguna yang sama untuk proses nginx ( stackoverflow.com/questions/22336186/… ) Instalasi nginx baru via apt pada debian menggunakan nginx pengguna. Mungkin Anda ingin mengubah contoh untuk menggunakan pengguna nginx.
binaryanomaly
4

Proses master dijalankan sebagai root, kemudian nginx akan setuid()/ setgid()ke USER/ GROUP. Jika GROUPtidak ditentukan, maka nginx menggunakan nama yang sama dengan USER.

Secara default, nobodypengguna dan nobodyatau grup nogroup atau --user=USERdan --group=GROUPdari ./configureskrip.

Anda dapat mengedit nginx.conf dan set user to www www;

Gila
sumber