Nginx/ja

nginx is a robust, small, high performance web server and reverse proxy server. It is a good alternative to popular web servers like Apache and lighttpd.

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

Expanded USE flags
Nginx uses modules to enhance its features. To simplify the maintenance of this modular approach, the nginx ebuild uses expanded USE flags to denote which modules should be installed.


 * HTTP related modules can be enabled through the  variable
 * Mail related modules can be enabled through the  variable
 * Third party modules can be enabled through the  variable

These variables need to be set in. Their descriptions can be found in and.

For example, to enable the  module:

Emerge
With the USE flags set, install :

Installation verification
The nginx package installs a init service script allowing administrators to stop, start, or restart the service. Run the next command to start the nginx service:

To verify that nginx is properly running, point a web browser to the http://localhost address or use a command-line web tool like curl:

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

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

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

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

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

Rebuild PHP with the  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:

IP address 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)

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

The file can be generated using:

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:

Third party modules
Download third party module source and move it to. Manually compile the selected Nginx module, then add the following line to :

Rebuild nginx with the third party module enabled:

OpenRC
Start nginx:

Stop nginx:

Add nginx to the default runlevel:

Restart the nginx service:

トラブルシューティング
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