Railsアプリの1つで実行するようにnginxをセットアップしようとしていました。ps -e | grep nginx
の出力を確認すると、nginxワーカープロセスがユーザーnobodyで実行されていることがわかりました。
Www-dataとして実行されない理由はありますか?
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構成がどのように見えるかの例です(ユーザーディレクティブに注意してください)。
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;
を編集できます