NGINX構成ディレクティブ
NGINX構成は複数のファイルにまたがり、異なる構成ディレクティブを指定して構成変数の値を設定できます。 構成は/etc/nginxに格納されます。 基本構成は/etc/nginx/nginx.confに格納されますが、サイト固有の構成は/etc/nginx/conf.d/の個別のファイル内に作成される傾向があります。 通常、サイト構成では、ファイル名に完全なドメイン名を使用する傾向があり、.conf接尾辞が必要です。
これらの例では、構成には次の一般的な形式があります。
http {
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
root /usr/share/nginx/html/example.com;
index index.html;
}
}
}
前述の例は、Webルート・ディレクトリ/usr/share/nginx/html/example.comのコンテンツを提供するWebサーバーのHTTPサーバー構成を示しています。
次の構成ディレクティブは、ロード・バランシングの構成に便利です。
http、https、stream-
設定を適用するプロトコルを定義します。 ロード・バランサへのTLS接続には
httpsを使用し、一般的なTCP/UDPトラフィックにはstreamを使用します。 -
server -
選択したプロトコルに対して指定したポートからの受信トラフィックを処理する方法を定義します。
IPv4用に少なくとも1つのリスニング・ポートを構成するには、
listenキーワードを使用します。listen 80;IPv6インタフェースでリスニングするには、ポート番号の前に
[::]:ディレクティブを追加します。次に例を示します。listen [::]:80listen行を複製して、server{}ブロックに複数のポートを指定できます。server_nameキーワードを使用して、サーバーが応答するホスト名またはドメイン名を定義します。 この値を指定しない場合、構成は受信接続に適用されますが、構成定義が競合しないように、/etc/nginx/nginx.conf内のデフォルト・サーバー構成をコメント・アウトすることが必要な場合があります。 - location
-
locationディレクティブは、サーバー上の受信リクエストに応じてパス・マッピングおよび動作を定義します。 少なくとも、値/で示されるWebルートの値が必要です。 この動作は、場所ブロック内で値を設定することによって定義されます。たとえば、サーバー上のディレクトリのコンテンツを提供する単純なWebサーバーを構成するには、
rootキーワードを使用して、コンテンツがあるディレクトリを指定します。proxy_passディレクティブは、リバース・プロキシ・サービスの実装に使用できます。 トラフィックは、アップストリーム・ディレクティブで定義されているように、指定されたサーバーまたはサーバー・グループにプロキシ設定されます。たとえば、次のように、ポート
9090のwebsrv1.example.comでホストされているWebサイトにインバウンドHTTPトラフィックをプロキシ設定します。server { location / { proxy_pass http://websvr1.example.com:9090 } }また、定義された
upstream名を参照して、サーバー・グループを指定することもできます。 - upstream
-
upstreamディレクティブは、コンテンツが格納され、proxy_passディレクティブで使用できる1つ以上のサーバーのグループを定義するために使用されます。 たとえば、backendというサーバーのアップストリーム・グループを次のように作成できます。upstream backend { server server1.example.com; server server2.example.com; server server3.example.com; }このグループを使用するには、
proxy_passディレクティブを指定します。proxy_pass http://backendアップストリーム・ディレクティブは、ロード・バランシングの方法およびアルゴリズムの制御に使用される主要な構成コンポーネントです。 詳細は、http://nginx.org/en/docs/http/ngx_http_upstream_module.htmlを参照してください。