Я пытался настроить nginx для работы с одним из моих приложений rails, когда, глядя на вывод ps -e | grep nginx
, я понял, что рабочие процессы nginx запускаются с пользователем nobody.
Есть ли причина, по которой они не работают как www-данные?
Я пытался настроить nginx для работы с одним из моих приложений rails, когда, глядя на вывод ps -e | grep nginx
, я понял, что рабочие процессы nginx запускаются с пользователем nobody.
Есть ли причина, по которой они не работают как www-данные?
Ответы:
Есть ли причина, по которой они не работают как www-данные?
Да. Скорее всего , вы не указали пользователя в своей конфигурации 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()
to USER
/ GROUP
. Если GROUP
не указан, то nginx использует то же имя, что и USER
.
По умолчанию это nobody
пользователь и nobody
или nogroup группа или --user=USER
и --group=GROUP
из ./configure
сценария.
Вы можете редактировать nginx.conf и set user to www www;