почему процесс nginx запускается с пользователем никто

16

Я пытался настроить nginx для работы с одним из моих приложений rails, когда, глядя на вывод ps -e | grep nginx, я понял, что рабочие процессы nginx запускаются с пользователем nobody.

Есть ли причина, по которой они не работают как www-данные?

му 無
источник
1
Кажется разумным вопрос, который привел к информативному ответу - почему спрашивающий очертил точку?
не патч

Ответы:

25

Есть ли причина, по которой они не работают как 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.

Это пример того, как может выглядеть конфигурация 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-данные, так что это разумный выбор.

Дрю Хури
источник
www-data, насколько я понимаю, скорее владелец / группа / var / www, и не стоит использовать одного и того же пользователя для процесса nginx ( stackoverflow.com/questions/22336186/… ). Новая установка nginx через apt на debian использует пользователя nginx. Возможно, вы захотите изменить пример на использование пользователя nginx.
бинанома
4

Главный процесс запускается от имени пользователя 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;

Ankso
источник