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のインストール
ここでの環境は、Rockey Linux8ですので、それを前提に進めます。
パッケージの確認
公式ページのLinuxパッケージのディストリビューションとバージョンから該当のパッケージを確認して選択します。ここでは、「RHEL/CentOS」を選択します。
nginx packages are available for the following Linux distributions and versions:
リポジトリファイルの作成
案内に従って、サーバにリポジトリファイルを作成します。
To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:
# 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!」の確認して稼働の確認ができれば導入は完了です。
2022年09月06日に投稿されました。