HOPES

Nginxのインストールと設定

Nginxのインストールと設定

広く使われているWEBサーバであるNginxについて、インストールの方法と設定についてまとめています。

Nginxとは?

Nginxは、Webサーバソフトで、主にアプリケーションサーバ等の前に置く、リバースプロキシサーバとして使用され、HTTPキャッシュやサーバ間で負荷を分散するロードバランサの機能を担う目的等で使います。

nginx engine x is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.

nginx

Nginxのインストール

ここでの環境は、Rockey Linux8ですので、それを前提に進めます。

パッケージの確認

公式ページのLinuxパッケージのディストリビューションとバージョンから該当のパッケージを確認して選択します。ここでは、「RHEL/CentOS」を選択します。

nginx packages are available for the following Linux distributions and versions:

nginx: Linux packages

リポジトリファイルの作成

案内に従って、サーバにリポジトリファイルを作成します。

To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

nginx: Linux packages

# vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

インストール

インストールを実行します。

# dnf install nginx
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* https://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* https://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* https://nginx.com/products/

----------------------------------------------------------------------

  検証             : nginx-1:1.20.2-1.el8.ngx.x86_64                                                                                    1/1 

インストール済み:
  nginx-1:1.20.2-1.el8.ngx.x86_64                                                                                                           

完了しました!

Nginxの設定

必要に応じて、Nginxの設定を行います。設定ファイルは、「/etc/nginx/nginx.conf」にあります。

# vi /etc/nginx/nginx.conf

keep aliveの設定

キープアライブとは、WEBサーバとクライアントの通信を切断せずに設定された期間の間接続状態を維持することにより、転送効率をあげる仕組みです。

例えば、プロキシサーバとして稼働しているNginxでは、キープアライブを設定して、アプリケーションサーバ等では、キープアライブをオフにしたりします。

ここでは、接続時間を3秒、リクエスト数の上限を100に設定します。

keepalive_timeout  3;
keepalive_requests 100;

圧縮配信の設定

サーバからの配信転送量を抑えるために、コンテンツを圧縮して配信するように設定します。

gzip  on;
gzip_proxied    any;
gzip_min_length 1k;
gzip_types      text/css text/javascript application/x-javascript application/json image/svg+xml application/pdf;
gzip_disable    "msie6";

ロードバランサーの設定

ロードバランサーの機能を使用する場合には、以下のように設定します。

ここでは、3台のアプリケーションサーバに振るようにしています。

upstream cluster {
    least_conn;
        server 10.0.0.11:8080 weight=2;;
        server 10.0.0.12:8080;
        server 10.0.0.13:8080;
}

例えば、サイトの設定を行なう場合には、以下のように、「proxy_pass」に、「http://cluster/」を設定します。

server{
    listen      443 ssl http2;
    server_name www.example.jp;

    location / {
        proxy_pass http://cluster/;
    }
}

ファイアウォールの設定

外部からHTTP通信でWEBサーバにアクセスできるように、ファイアウォールの設定を行います。

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Nginxの起動と確認

起動と自動起動設定

Nginxを起動して、今後は自動起動するように設定します。

# systemctl start nginx
# systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

稼働の確認

ブラウザでサーバのIPアドレスにアクセスして、「Welcome to nginx!」の確認して稼働の確認ができれば導入は完了です。

nginxの動作確認

2022年09月06日に投稿されました。