Я намагався налаштувати nginx для запуску з одним із моїх додатків рейлів, коли, подивившись на вихід ps -e | grep nginx
, я зрозумів, що nginx робочі процеси виконуються з користувачем ніхто.
Чи є причина, чому вони не працюють як www-data?
Я намагався налаштувати nginx для запуску з одним із моїх додатків рейлів, коли, подивившись на вихід ps -e | grep nginx
, я зрозумів, що nginx робочі процеси виконуються з користувачем ніхто.
Чи є причина, чому вони не працюють як www-data?
Відповіді:
Чи є причина, чому вони не працюють як www-data?
Так. Ви, швидше за все , не вказали користувача у вашій конфігурації nginx .
Директива користувача: http://nginx.org/en/docs/ngx_core_module.html#user
syntax: user user [group];
default:
user nobody nobody;
context: main
Ви можете вказати користувача / групу, для якої nginx працює у конфігурації nginx.
Це приклад того, як може виглядати конфігурація nginx (зверніть увагу на інструкцію користувача):
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
}
Просто оновіть свою конфігурацію, а потім перезавантажте або перезавантажте nginx, і вам слід зайти.
Звичайно, ви повинні вибрати користувача, який найкраще підходить для вашої системи, у Debian / Ubuntu за замовчуванням є www-дані, тому це розумний вибір.
Основний процес запускається як root, тоді nginx буде setuid()
/ setgid()
до USER
/ GROUP
. Якщо GROUP
не вказано, то nginx використовує те саме ім'я, що і USER
.
За замовчуванням це nobody
користувач і nobody
чи nogroup група або --user=USER
і --group=GROUP
з ./configure
сценарію.
Ви можете редагувати nginx.conf і set user to www www;