nginx.conf@Nginx¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. セットアップ¶
インストール¶
▼ aptリポジトリから¶
nginxをapt-get
コマンドでインストールすると、旧バージョンが指定されるため、apt
コマンドを使用する。
$ apt install nginx
▼ yumリポジトリから¶
$ yum install -y nginx
02. 設定ファイルの種類¶
/etc/nginx/conf.d/*.conf
ファイル¶
▼ .../conf.d/*.conf
ファイルとは¶
デフォルトの設定が定義されているいくつかのファイル。
基本的には読み込むようにする。
ただし、nginx.confファイルの設定が上書きされてしまわないかを注意する。
include /etc/nginx/conf.d/*.conf;
/usr/share/nginx/modules/*.conf
ファイル¶
▼ .../modules/*.conf
ファイルとは¶
モジュールの読み出し処理が定義されているファイル。
include /usr/share/nginx/modules/*.conf;
/etc/nginx/mime.types
ファイル¶
▼ mime.types
ファイルとは¶
リクエストのContent-TypeのMIMEタイプとファイル拡張子の間の対応関係が定義されているファイル。
include /etc/nginx/mime.types;
/etc/nginx/fastcgi_params
ファイル¶
▼ fastcgi_params
ファイルとは¶
FastCGIプロトコルでルーティングする場合に使用する。
アプリケーションで使用できる変数を定義する。
nginx.conf
ファイルによって読み込まれる。
OSやそのバージョンによっては、変数のデフォルト値が異なることがある。
実際にインバウンド通信のルーティング先に接続し、上書き設定が必要なものと不要なものを判断する必要がある。
▼ Debian系の場合¶
Debian10の設定ファイルを以下に示す。
*実装例*
#-------------------------------------------------------
# OSによって、fastcgi_paramsファイルの必要な設定が異なる
#-------------------------------------------------------
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHPのみで必要な設定
fastcgi_param REDIRECT_STATUS 200;
03. Core¶
ブロック¶
▼ events¶
*実装例*
events {
worker_connections 1024;
}
ディレクティブ¶
▼ user¶
本設定ファイルの実行ユーザーとグループを設定する。
グループ名を入力しなかった場合、ユーザー名と同じものが自動的に設定される。
user www www;
▼ error_log¶
error_log logs/error.log;
▼ include¶
共通化された設定ファイルを読み込む。
アスタリスクによるワイルドカード (*
) をサポートしている。
include /etc/nginx/conf.d/*.conf;
include
ディレクティブをどの階層で実行したかによって、指定した設定ファイル内で実行できるディレクティブが異なる。
例えば、http
ディレクティブは一番上の階層で実行する必要があるため、これを定義した設定ファイルは一番上の階層のinclude
ディレクティブで指定する必要がある。
include /etc/nginx/conf.d/foo_module.conf;
http {
# ここでhttpを実行する設定ファイルをincludeできない
}
▼ load_module¶
Nginxでは、ビルド時にモジュール (so
ファイル) をバイナリを組み込むが、すでにビルド済みのモジュールを実行時に読み込める。
デフォルトでは、モジュールはmodules
ディレクトリにある。
load_module modules/<動的モジュール名>;
▼ pid¶
pid logs/nginx.pid;
▼ worker_connections¶
workerプロセスが同時に処理できるコネクションの最大数を設定する。
worker_connections 1024;
▼ worker_processes¶
worker_processes 5;
▼ worker_rlimit_nofile¶
worker_rlimit_nofile 8192;
04. 変数¶
$request_uri
¶
受信したリクエストのHTTPメソッドとURLが割り当てられている。
GET http://_:80/foo
$uri
¶
受信したリクエストのURLパスが割り当てられている。