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