Nginx/ja

nginx はウェブサーバ / リバースプロキシサーバです. ]] や と同様に支持されているウェブサーバとして良い選択肢です.

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

拡張 USE フラグ
Nginx はモジュールによって機能が拡張されます. このモジュールによるアプローチの管理をより簡潔にするために、nginx の ebuild では拡張 USE フラグを用い、どのモジュールをインストールするか指定されます.


 * HTTP に関連するモジュールは NGINX_MODULES_HTTP 変数を介して有効化できます.
 * メールに関連するモジュールは NGINX_MODULES_MAIL 変数を介して有効化できます.
 * サードパーティモジュールは NGINX_ADD_MODULES 変数を介して有効化できます.

これらの変数はに設定する必要があります. 詳しい解説は と  にあります.

例えば、 モジュールを有効にするには:

上記の設定は NGINX_MODULES_HTTP のデフォルト値を上書きして  に設定します. デフォルトの NGINX_MODULES_HTTP 値を上書きせずに  モジュールを有効化するには、次の USE フラグ記述を  に指定することで行えます:

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

インストールを確認する
デフォルトの nginx 設定は をルートディレクトリとして設定したバーチャルサーバを定義しています. しかし のため、nginx ebuild は  ディレクトリのみ作成し、インデックスファイルを作成しません. デフォルト設定を動作させるには、 ディレクトリと簡単なインデックスファイルを作成してください:

nginxパッケージはinitサービススクリプトをインストールし、それを使ってシステム管理者はnginxを停止、起動、及び再起動することができます. nginxサービスを起動するには次のコマンドを実行します:

nginx が正常に動作しているか確認するには、ブラウザで http://localhost にアクセスするか、コマンドライン上で動く などを使います:

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

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

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

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

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

USEフラグを有効にして PHP を再ビルドします:

PHP 7.0 以降のバージョンでは、次の構成を使用してください:

php-fpm ファイルでタイムゾーンを設定してください. 下の FileBox 内の  テキストを適切なタイムゾーン情報に置き換えてください.

デーモンを開始します:

を default ランレベルに追加します:

変更した設定を使って を再読み込みします:

systemd の場合は、上の代わりに:

IP アドレスのアクセスリスト
次の例は特定の URL（ここでは ）へのアクセスを以下からに制限する方法を示しています:


 * 特定のホスト (e.g. 192.0.2.1 127.0.0.1)
 * 特定の IP ネットワーク (e.g. 198.51.100.0/24)

ベーシック認証
nginx は、ユーザ名とパスワードを検証することによって、リソースへのアクセスを制限することができます:

ファイルは、次のコマンドを使用して生成することができます:

GeoIP2 を使用したジオロケーション
GeoIP2 モジュールは、Maxmind による GeoIP2 データベースまたはその類似物を利用します. Gentoo での Maxmind の使用はすでに を通じてサポートされています. しかしながら、無料ライセンスキーを入手して無料データベースをダウンロードするには、アカウント登録が必要です.

Maxmind GeoIP2 データベースをダウンロードする
アカウントを作成したら、geoipupdate をインストールして設定してください:

アカウントとライセンスキーを入力してください:

そして、データベースをダウンロードする必要があるでしょう:

将来自動で更新を受け取るには、このコマンドを週次の cron ジョブまたは systemd タイマーに追加してください.

Nginx に GeoIP2 サポートを追加する
モジュールを有効化して Nginx を再ビルドするには:

有効化されたサードパーティ製モジュールとともに、nginx を再ビルドしてください:

Nginx が再ビルドされたら、Nginx がデータベースと GeoIP2 変数を使用するようにしてください:

オプションを付けると、Nginx を再起動せずにデータベースの更新ができるようになるでしょう.

GeoIP2 の値が PHP アプリケーション内に現れるようにするには、それらを 値に代入してください:

サードパーティー製モジュール
サードパーティ製モジュールをダウンロードして、 に移動してください. 選択した Nginx モジュールを手動でコンパイルし、 に次の行を追加してください:

有効化されたサードパーティ製モジュールとともに、nginx を再ビルドしてください:

OpenRC
nginx ウェブサーバを開始します:

nginx ウェブサーバを停止します:

システム再起動時にサービスを自動で開始できるように nginx を default ランレベルに追加します:

接続を切ることなく nginx の設定を再読み込みします:

nginx サービスを再起動します:

systemd
nginx ウェブサーバを開始します:

nginx ウェブサーバを停止します:

サービスの状態を確認します:

システム再起動時にサービスの自動開始を有効化します:

接続を切ることなく nginx の設定を再読み込みします:

nginx サービスを再起動します:

トラブルシューティング
問題が発生したときは、以下のコマンド群が状況をトラブルシュートする助けになるかもしれません.

設定の妥当性を検証する
実行中の nginx の設定にエラーが無いことを確認してください:

を  オプションとともに実行することで、nginx は実際に  デーモンを開始することなく、設定ファイルの妥当性を検証します. デフォルト以外の場所にある設定ファイルをテストするには、ファイルへのフルパスとともに  オプションを使用してください.

プロセスが実行中か確認する
プロセスが実行中か確認してください:

bind されたアドレスとポートを確認する
nginx デーモンが正しい TCP ポート (HTTP なら 80、HTTPS なら 443、など) で listen しているか確認してください:

外部の情報

 * https://nginx.org/en/docs/beginners_guide.html - 初心者ガイド.  についてよく知らない人にとって役立ちます.
 * https://nginx.com/resources/admin-guide/ - 管理ガイド. 現場で作業する管理者にとって役立ちます.
 * https://wiki.nginx.org/Main - nginx ウィキ.
 * https://github.com/h5bp/server-configs-nginx - H5BP nginx コンフィグ.