差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
linux:nginx [2020/04/19 07:33] – 作成 ともやん | linux:nginx [2023/07/12 09:37] – ともやん | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== NGINX - High Performance Load Balancer, Web Server, & Reverse Proxy ====== | + | ====== 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% # | ||
+ | < | ||
+ | Created symlink / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== 設定ファイルのバックアップ ==== | ||
+ | < | ||
+ | $ sudo cp / | ||
+ | </ | ||
+ | <WRAP prewrap 100% # | ||
+ | < | ||
+ | Created symlink / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== ワーカープロセス数の設定 ==== | ||
+ | サーバーのプロセッサ数を調べる。\\ | ||
+ | ※下記の例では 4 個のプロセッサを搭載している。\\ | ||
+ | < | ||
+ | $ cat / | ||
+ | </ | ||
+ | <WRAP prewrap 100% # | ||
+ | < | ||
+ | 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% # | ||
+ | < | ||
+ | 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:// | ||