差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| linux:nginx [2020/04/19 07:52] – ともやん | linux:nginx [2023/09/12 10:55] (現在) – [Events モジュールの設定] ともやん | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== NGINX - ハイパフォーマンス ロードバランサー、Webサーバー、リバースプロキシ ====== | ====== NGINX - ハイパフォーマンス ロードバランサー、Webサーバー、リバースプロキシ ====== | ||
| + | <WRAP #logo> | ||
| + | {{linux: | ||
| + | </ | ||
| + | 本家: [[https:// | ||
| + | ソースコード: | ||
| + | |||
| + | ===== インストール ===== | ||
| + | < | ||
| + | $ sudo dnf install nginx | ||
| + | </ | ||
| + | <WRAP prewrap 100% # | ||
| + | < | ||
| + | whitewaterfoundry_wslu | ||
| + | 依存関係が解決しました。 | ||
| + | ========================================================================================================== | ||
| + | | ||
| + | ========================================================================================================== | ||
| + | インストール: | ||
| + | | ||
| + | 依存関係のインストール: | ||
| + | | ||
| + | | ||
| + | |||
| + | トランザクションの概要 | ||
| + | ========================================================================================================== | ||
| + | インストール | ||
| + | |||
| + | ダウンロードサイズの合計: | ||
| + | インストール済みのサイズ: | ||
| + | これでよろしいですか? | ||
| + | パッケージのダウンロード: | ||
| + | (1/3): nginx-mimetypes-2.1.48-6.fc31.noarch.rpm | ||
| + | (2/3): gperftools-libs-2.7-6.fc31.x86_64.rpm | ||
| + | (3/3): nginx-1.16.1-1.fc31.x86_64.rpm | ||
| + | ---------------------------------------------------------------------------------------------------------- | ||
| + | 合計 | ||
| + | トランザクションの確認を実行中 | ||
| + | トランザクションの確認に成功しました。 | ||
| + | トランザクションのテストを実行中 | ||
| + | トランザクションのテストに成功しました。 | ||
| + | トランザクションを実行中 | ||
| + | 準備 | ||
| + | インストール中 | ||
| + | インストール中 | ||
| + | インストール中 | ||
| + | scriptletの実行中: | ||
| + | 検証 | ||
| + | 検証 | ||
| + | 検証 | ||
| + | |||
| + | インストール済み: | ||
| + | gperftools-libs-2.7-6.fc31.x86_64 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== NGINX の設定 ===== | ||
| + | |||
| + | ==== 自動起動設定 ==== | ||
| + | < | ||
| + | $ sudo systemctl enable nginx | ||
| + | </ | ||
| + | <WRAP prewrap 100% #result> | ||
| + | < | ||
| + | Created symlink / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== 設定ファイルのバックアップ ==== | ||
| + | < | ||
| + | $ sudo cp / | ||
| + | </ | ||
| + | <WRAP prewrap 100% #result> | ||
| + | < | ||
| + | Created symlink / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== ワーカープロセス数の設定 ==== | ||
| + | サーバーのプロセッサ数を調べる。\\ | ||
| + | ※下記の例では 4 個のプロセッサを搭載している。\\ | ||
| + | < | ||
| + | $ cat / | ||
| + | </ | ||
| + | <WRAP prewrap 100% #result> | ||
| + | < | ||
| + | processor | ||
| + | processor | ||
| + | processor | ||
| + | processor | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ワーカープロセス数を **auto** または、プロセッサ数に設定。\\ | ||
| + | < | ||
| + | $ sudo vi / | ||
| + | </ | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | # | ||
| + | worker_processes | ||
| + | </ | ||
| + | </ | ||
| + | **auto** の場合はコア数を見て自動設定される。\\ | ||
| + | |||
| + | ==== その他ワーカープロセスの設定 ==== | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | # | ||
| + | worker_processes 4; | ||
| + | worker_rlimit_nofile 8192; # ワーカープロセスが扱える最大ファイル数 | ||
| + | worker_priority 0; # ワーカープロセスの優先度 | ||
| + | worker_cpu_affinity 0001 0010 0100 1000; # ワーカープロセスが使うCPUコア(4コア) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ※**worker_cpu_affinity** はプロセッサの数に応じて変更する。\\ | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | worker_cpu_affinity 01 10; # CPU 2コア | ||
| + | worker_cpu_affinity 001 010 100; # CPU 3コア | ||
| + | worker_cpu_affinity 0001 0010 0100 1000; # CPU 4コア | ||
| + | worker_cpu_affinity 00001 00010 00100 01000 10000; # CPU 5コア | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Events モジュールの設定 ==== | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | events { | ||
| + | multi_accept off; # リスニングソケットオープン時の相互排他制御 | ||
| + | worker_connections 1024; # ワーカープロセス同時接続数 | ||
| + | use epoll; | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== セッション、セキュリティ設定 ==== | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | http { | ||
| + | server_tokens off; # バージョン情報非表示 | ||
| + | # | ||
| + | keepalive_requests 1000; # KeepAlive 接続で処理できる最大要求数 | ||
| + | keepalive_timeout | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== タイプハッシュテーブルの最大値を設定 ==== | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | http { | ||
| + | # | ||
| + | types_hash_max_size 4096; | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== アップロードサイズ制限の変更 ==== | ||
| + | ファイルのアップロード時に **413 Request Entity Too Large** が発生する場合は、デフォルト 1M の制限を変更する。\\ | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | http { | ||
| + | # | ||
| + | client_max_body_size 100m; | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== 設定の反映 ==== | ||
| + | 設定ファイルの内容を検証する。\\ | ||
| + | < | ||
| + | $ sudo nginx -t | ||
| + | </ | ||
| + | <WRAP prewrap 100% #result> | ||
| + | < | ||
| + | nginx: the configuration file / | ||
| + | nginx: configuration file / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | nginx を再起動する。\\ | ||
| + | < | ||
| + | $ sudo systemctl restart nginx | ||
| + | </ | ||
| + | |||
| + | ===== 動作確認 ===== | ||
| + | [[http:// | ||
| + | {{: | ||
| + | |||
| + | ===== トラブルシューティング ===== | ||
| + | |||
| + | ==== 設定ファイルの内容検証で警告が発生する ==== | ||
| + | < | ||
| + | nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_size: | ||
| + | </ | ||
| + | |||
| + | タイプハッシュテーブルの最大値を変更する。\\ | ||
| + | <WRAP prewrap 100% # | ||
| + | <code autoconf / | ||
| + | http { | ||
| + | # | ||
| + | types_hash_max_size 4096; | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | / | ||
| + | [[https:// | ||
| + | |||
| + | ===== 参考文献 ===== | ||
| + | [[http:// | ||
| + | [[https:// | ||
| + | [[http:// | ||
| + | [[https:// | ||