Nginx/ja

nginx は強固でコンパクトかつハイパフォーマンスなWebサーバ / リバースプロキシサーバです. Apache や lighttpd と共に、有名で入手できるWebサーバの良い選択肢となります.

インストール
パッケージのインストールを始める前に、まずはNginx向けの適切なUSEフラグを設定します.

Nginxは機能を拡張する為にモジュールを使用しています. このモジュール方式のメンテナンスを容易にする為、nginxのebuildは、どのモジュールをインストールすべきか示すために拡張USEフラグを用いています. HTTPに関連したモジュールは 変数を通して有効化することができ、メールに関連したモジュールは 変数を通して有効化できます.

これらの変数はに設定する必要があります. 詳しい解説は/usr/portage/profiles/desc/nginx_modules_http.descと/usr/portage/profiles/desc/nginx_modules_mail.descで見ることが出来ます.

その他のUSEフラグについては次の通りです:

USEフラグを設定したら、をインストールします:

nginxをdefaultランレベルに追加するのを忘れないで下さい:

運用
nginxパッケージは管理者がサービスを開始・停止・再起動する為のスクリプトを含んでいます.

nginxが正常に動作しているか確認するには、ブラウザから確認するか、コマンドラインから使えるコマンドの一つを用います(例: ):

設定
nginxの設定はファイルを通して行います.

単一サイト利用
以下は、(PHPのような)ダイナミック生成を用いない単一サイト利用の例です.

複数サイト利用
複数のファイルに設定を分割する為、 ディレクティブを利用することが可能です:

PHPサポートの有効化
PHPサポートを有効化する為には、次の行をnginxの設定ファイルに追加してください. この例ではnginxとPHPプロセスはUNIXソケットを介して情報を交換します.

このセットアップでは、 USE フラグによって管理されるFastCGI Process Managerサポートと共にビルドされたPHPが必要です:

Rebuild php with the new USE flag enabled.

Review the configuration and add following line:

Setup your timezone in the php-fpm file.

Start the php-fpm daemon:

Add php-fpm to the default runlevel:

Reload nginx with changed configuration:

Enabling an IP access list
The next example shows how to allow access to a particular URL (in this case /nginx_status) only to
 * certain hosts (e.g. 192.0.2.1 127.0.0.1)
 * and IP networks (e.g. 198.51.100.0/24)

Enabling basic authentication
nginx allows limiting access to resources by validating the user name and password:

The file can be generated using:

Enabling tls support
It is warmly suggested to support only TLS and disable known insecure ciphers.

The ebuild provides stock self signed certificates in.

Generating Certificates
TODO

Forward Secrecy
The diffie-hellman certificate can be created using :

トラブルシューティング
In case of problems, the following commands can help you troubleshoot the situation.

Validate configuration
Verify that the running nginx configuration has no errors.

By running  with the   option, it will validate the configuration file without actually starting an nginx daemon.

Verify processes are running
Check if the nginx processes are running:

Verify bound addresses and ports
Verify nginx daemon is listening on the right TCP port (such as 80 for HTTP or 443 for HTTPS):

External resources

 * nginx Wiki
 * H5BP nginx config