nginx入門|簡単インストール方法と設定を詳しく解説

ここでは、nginxのインストール方法についてご紹介致します。

CentOSなどRedhat系でのインストール方法と設定になります。

と、その前にnginx(エンジンエックス)をよく知らない方に説明すると、nginxはwebサーバーのミドルソフトウェアです。

メジャーなwebサーバーと言えば、apache、IISなどがありますが、nginxの一番の特徴はリバースプロキシの機能があることです。

ちなみに、このリバースプロキシとは、サーバーの手前に設定してクライアントからの接続を複数のwebサーバーなどを振り分ける働きです。

言わばロードバランサー的な働きをすることです。ですので、webサーバーの負荷を分散したり、また、webサーバーを停止することなくメンテナンスをすることができたりと大変便利な機能なんです(^^♪

nginx入門|簡単インストール方法と設定を詳しく解説

初めてnginxを使用する入門の方から少しご存知の方に向けた内容となっております。

OS/Middleware Version
CentOS 7.6.1810 (x86 64bit)
nginx 1.15.7

nginx入門|簡単インストール方法と設定を詳しく解説

1-1. nginx用のレポジトリー「nginx.repo」を/etc/yum.repos.dフォルダーの下に作成する

#vi /etc/yum.repos.d/nginx.repo
↓↓↓nginx用のレポジトリーファイルnginx.repoを作成し以下を入力↓↓↓

~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
~~~~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~~~~

 

1-2. nginxをインストール

#yum install nginx

Complete!を確認する

 

1-3. nginx起動・再起動・ステータス確認

# systemctl start 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)で来た接続はそのままバックエンドサーバーへ接続をします。

※リダイレクト(301)とは、httpで通信を行う際のステータスコードの一種であり、特定のページから別のページへ転送させる際のステータスコードになります。このリダイレクトには301と302の2種類のステータスコードがあります。301は恒久的な転送を意味しており、302は一時的な転送を意味しています。ちなみに、httpでホームページなどをwebサーバーから正常にGETできた場合のステータスコードは200です。301のコードをもらったパソコンのブラウザーは、その転送先のページが表示されます。その際、ブラウザーのアドレスバーには転送先のURLが表示されます。

nginx入門|簡単インストール方法と設定を詳しく解説

ファイル名:/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 -t   ← 文法チェック。サービスに影響を与えません。
エラーが無くなったらnginxを再起動しましょう。