web-dev-qa-db-ja.com

nginxプロセスがユーザーnobodyで実行される理由

Railsアプリの1つで実行するようにnginxをセットアップしようとしていました。ps -e | grep nginxの出力を確認すると、nginxワーカープロセスがユーザーnobodyで実行されていることがわかりました。

Www-dataとして実行されない理由はありますか?

16
mu 無

Www-dataとして実行されない理由はありますか?

はい。おそらくnginx configでユーザーを指定していません。

ユーザーディレクティブ: 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-dataがあるので、それは賢明な選択です。

25
Drew Khoury

マスタープロセスはrootとして実行され、nginxはsetuid()/setgid()USER/GROUPに変換します。 GROUPが指定されていない場合、nginxはUSERと同じ名前を使用します。

デフォルトでは、nobodyユーザーとnobodyまたはnogroupグループ、または--user=USERスクリプトの--group=GROUP./configureです。

Nginx.confとset user to www www;を編集できます

4
ankso