ここでは、nginxのインストール方法についてご紹介致します。
CentOSなどRedhat系でのインストール方法と設定になります。
と、その前にnginx(エンジンエックス)をよく知らない方に説明すると、nginxはwebサーバーのミドルソフトウェアです。
メジャーなwebサーバーと言えば、apache、IISなどがありますが、nginxの一番の特徴はリバースプロキシの機能があることです。
ちなみに、このリバースプロキシとは、サーバーの手前に設定してクライアントからの接続を複数のwebサーバーなどを振り分ける働きです。
言わばロードバランサー的な働きをすることです。ですので、webサーバーの負荷を分散したり、また、webサーバーを停止することなくメンテナンスをすることができたりと大変便利な機能なんです(^^♪
初めてnginxを使用する入門の方から少しご存知の方に向けた内容となっております。
OS/Middleware | Version |
CentOS | 7.6.1810 (x86 64bit) |
nginx | 1.15.7 |
1-1. nginx用のレポジトリー「nginx.repo」を/etc/yum.repos.dフォルダーの下に作成する
↓↓↓nginx用のレポジトリーファイルnginx.repoを作成し以下を入力↓↓↓
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
~~~~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~~~~
1-2. nginxをインストール
Complete!を確認する
1-3. nginx起動・再起動・ステータス確認
# systemctl reload nginx ← 再起動(userへの影響ナシ)
# systemctl status nginx ← ステータス確認
1-4. 設定
nginxの基本的なconfigurationです。設定に必要なファイルはサーバー名毎に定義するファイルとバックエンド側の処理が定義されたupstream.confの2種類です。
[設定条件]
今回設定する条件は、http(port#80)で着弾したアクセスをhttps(port#443)へリダイレクト(301)し、バックエンドサーバーへ接続をします。https(port#443)で来た接続はそのままバックエンドサーバーへ接続をします。
ファイル名:/etc/nginx/conf.d/example.jp.conf
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server {
listen 443 ssl ;
server_name example.jp;
access_log /var/log/nginx/example.jp_access.log main;
ssl_certificate /cert/example.jp/example.cer;
ssl_certificate_key /cert/example.jp/example.key;
proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
# ELB X-Forwarded-For Settings
set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;
location / {
proxy_pass https://example-furiwake;
}
}
server {
listen 80;
server_name example.jp;
access_log /var/log/nginx/example.jp_access.log main;
proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;
location / {
rewrite ^(.*)$ https://example.jp$1 permanent;
proxy_pass https://example-furiwake;
}
}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~
permanent | 恒久的なリダイレクトをするときに使用します。HTTPのステータスコードは「301」を返します。 |
redirect | 一時的なリダイレクトをするときに使用します。HTTPのステータスコードは「302」を返します。 |
ファイル名:/etc/nginx/conf.d/upstream.confの設定内容
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
upstream example-furiwake {
keepalive 256;
server 192.168.1.154:443 max_fails=0;
server 192.168.1.155:443 max_fails=0;
}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~
※max_fails=0は、サーバーとのヘルスチェックを無効にしている
※keepalive connections数
1-5. 文法チェック
再起動の前に文法チェックをします。文法に誤りがあると行番号を表示してエラーがあることを教えてくれます。
エラーが無くなったらnginxを再起動しましょう。