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


16

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

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


1
有益な答えにつながった合理的な質問のようです-なぜ質問者はポイントを付けたのですか?
パッチではなく、14

回答:


25

彼らが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 configで、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があるので、これは賢明な選択です。


www-dataは、/ var / wwwの所有者/グループであると理解していますが、nginxプロセスに同じユーザーを使用することはお勧めできません(stackoverflow.com/questions/22336186/…)aptを介したnginxの新規インストールdebianでは、ユーザーnginxを使用します。たぶん、nginxユーザーを使用するように例を変更したいかもしれません。
値異常14

4

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

デフォルトでは、それはだnobody、ユーザーおよびnobodyまたはnogroupがグループまたは--user=USER--group=GROUPから./configureスクリプトが。

nginx.confを編集して、 set user to www www;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.