どうしたの?
以来、あなたは、DebianやUbuntuのを使用している必要があり悪 sites-available
/ sites-enabled
ロジックはで使用されていないのnginxの上流のパッケージからhttp://nginx.org/packages/。
いずれの場合も、両方の標準include
ディレクティブを使用して、構成規則として実装されます/etc/nginx/nginx.conf
。
ここでの抜粋です/etc/nginx/nginx.conf
nginx.orgからのnginxの公式上流のパッケージからは:
http {
…
include /etc/nginx/conf.d/*.conf;
}
/etc/nginx/nginx.conf
Debian / Ubuntuの抜粋は次のとおりです。
http {
…
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
そのため、NGINXの観点から見ると、唯一の違いは、ファイルがよりconf.d
早く処理されることです。したがって、互いに静かに競合する構成がある場合、の構成がの構成conf.d
より優先されsites-enabled
ます。
ベストプラクティスはですconf.d
。
を使用する必要があり/etc/nginx/conf.d
ます。これは標準の規則であり、どこでも動作するはずです。
サイトを無効にする必要がある場合は、ファイル名を.conf
サフィックスがなくなるように名前を変更するだけで、非常に簡単でわかりやすく、エラーが発生しません。
sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
または、サイトを有効にするための反対:
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
避けてくださいsites-available
&sites-enabled
すべてのコストで。
sites-available
/ を使用する理由はまったくありませんsites-enabled
。
一部の人々はスクリプトに言及nginx_ensite
しnginx_dissite
ました-これらのスクリプトの名前はこの大惨事の残りの部分よりもさらに悪いです-しかしこれらのスクリプトはどこにも見つかりませんnginx
-Debian(そしておそらくUbuntuでも)にもパッケージにはありません、独自のパッケージに含まれていない、さらに、2つのディレクトリ間でファイルを移動および/またはリンクするために、非標準のサードパーティスクリプト全体が本当に必要ですか?
スクリプトを使用していない場合(実際、上記のように賢い選択です)、サイトをどのように管理するかという問題が発生します。
- から
sites-available
へのシンボリックリンクを作成しますsites-enabled
か?
- ファイルをコピーしますか?
- ファイルを移動しますか?
- の場所でファイルを編集します
sites-enabled
か?
上記は、数人または数人がシステムの管理を開始するまで、またはあなたが迅速な決定を下すまで、数ヶ月または数年後にそれを忘れるまで、取り組むべきいくつかの小さな問題のように見えるかもしれません...
これにより、次のことが可能になります。
だけでなく、上記のすべてが、また、具体的な注意include
のDebian / Ubuntuので使用されるディレクティブを- /etc/nginx/sites-enabled/*
-何のファイル名の拡張子が指定されていないsites-enabled
ためとは異なり、conf.d
。
- これが意味する1日すばやくファイルまたは2内を編集することにした場合ということです
/etc/nginx/sites-enabled
、そしてあなたはemacs
、バックアップファイルなどを作成しdefault~
、その後、突然、あなたは両方を持っているdefault
し、default~
使用ディレクティブを依存し、さえ得られない可能性がある、アクティブな構成として含ま警告が表示され、長時間のデバッグセッションが発生します。(はい、それは私に起こりました;それはハッカソンの間でした、そして私は私のconfがうまくいかなかった理由に完全に戸惑いました。)
したがって、私はそれsites-enabled
が純粋な悪であると確信しています!
www-data
別のトピックです。ほとんどのオペレーティングシステムは、ルートとしてポート80にバインドした後にプロセスが実行できる、より低い権限を持つ別のユーザーを定義します。設定ファイルで定義されています。そこから基本的なセキュリティ慣行を適用します。ウェブサーバーが書き込む必要のないものにユーザーが書き込むことを許可しないでください。意図しない限り、他のユーザーがファイルに書き込むことを許可しないでください。