Nginx/ja

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

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

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

These variables need to be set in. Their descriptions can be found in /usr/portage/profiles/desc/nginx_modules_http.desc and /usr/portage/profiles/desc/nginx_modules_mail.desc.

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

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

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

To verify that nginx is properly running, point a web browser to the address or use a command line web clients like curl:

設定
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:

Set the timezone in the php-fpm file. Substitute the  text in the FileBox below with the appropriate timezone information:

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.

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

Enabling third party modules
Download third party module source and move it to or any other location. Manually compile the Nginx module, then add the following line to :

Rebuild nginx with the third party module enabled:

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

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

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

Verify processes are running
Check if 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