CentOS 8に最新のNginxをインストール

Linux

公式リポジトリを導入してインストール

Nginx公式のリポジトリを追加する。公式の説明はこちら
リポジトリにはStable (安定版) とMainline (本線版) がある。アップデートの際に少しでも旧バージョンとの互換性を失いたくない場合はStable、そうでない場合はMainlineで良い。

リポジトリの定義をファイル化する。キーボード入力をcatコマンドで表示し、リダイレクトでファイル化する。最後はCtrl+Dで終了する。

# cd /etc/yum.repos.d/
# cat > nginx.repo
[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 config-manager --enable nginx-mainline

キャッシュを更新して、試しにNginxの情報を表示してバージョンを確認してみる。
(記事執筆時点で最新バージョンは1.19.1)

# dnf makecache
# dnf info nginx
Last metadata expiration check: 0:00:06 ago on Wed 05 Aug 2020 02:08:46 PM UTC.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.19.1
Release      : 1.el8.ngx
Architecture : x86_64
Size         : 814 k
Source       : nginx-1.19.1-1.el8.ngx.src.rpm
Repository   : nginx-mainline
Summary      : High performance web server
URL          : http://nginx.org/
License      : 2-clause BSD-like license
Description  : nginx [engine x] is an HTTP and reverse proxy server, as well as
             : a mail proxy server.

Nginxをインストールする。

# dnf install nginx

ファイアウォールの開通

OSのファイアウォールが動作している場合は、HTTP (ポート80) と必要に応じてHTTPS (ポート443) も穴開けをする。
クラウド環境だとOSの外部にファイアウォールがあったりするので、デフォルトで動作していなかったり、動作していても全ポート許可になっていたり、そうでなくてもネットワークインターフェースに対するゾーン名が異なる場合もあるため、まずはファイアウォールの動作状況を確認する。
以下の場合は、ファイアウォールがrunning (動作中) で、ネットワークインターフェースens192に対応するゾーン名がpublicとなる。

# firewall-cmd --state
running
# firewall-cmd --get-active-zone
public
  interfaces: ens192

対応するゾーンにhttpとhttpsのサービスを追加し、ポート80と443を開放する。恒久設定とするためpermanentオプションを指定し、最後にreloadで実際に反映させる。

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

ファイアウォールの設定を行ったら、念のため状況を確認しておく。

# firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

サービス設定と起動

何らかの理由でNginxが落ちたら再起動してほしい場合は、systemdのNginxサービス定義に再起動条件を追加する。
OS標準エディタ (CentOS 8の場合はvi) が立ち上がるので、[Service] セクションとRestart定義の2行を追記して保存終了する。その後、systemctl daemon-reloadで設定を再読み込みする。

# systemctl edit nginx.service
[Service]
Restart=always
# systemctl daemon-reload

Nginxのサービスを起動し、OS起動時にNginxも自動起動するよう設定する。

# systemctl start nginx
# systemctl enable nginx

サービスを起動したら、念のため状況を確認しておく。

# systemctl status nginx -l
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/nginx.service.d
           mqoverride.conf
   Active: active (running) since Fri 2020-08-07 17:58:50 JST; 13min ago
     Docs: http://nginx.org/en/docs/
 Main PID: 1923 (nginx)
    Tasks: 2 (limit: 24607)
   Memory: 2.2M
   CGroup: /system.slice/nginx.service
           tq1923 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           mq1924 nginx: worker process

 8月 07 17:58:50 hiyoko-test systemd[1]: Starting nginx - high performance web server...
 8月 07 17:58:50 hiyoko-test systemd[1]: Started nginx - high performance web server.

コメント

  1. […] 7でも同様に動作するはずです。まだの方は、当サイトのCentOS 8に最新のNginxをインストールとCentOS […]

タイトルとURLをコピーしました