nginxは一年くらいでバージョンアップされ、旧バージョンはEOLになる。
先日、WindowsとRedhatのnginxのバージョンアップを行ったが、来年もおそらく実施が必要になるので手順を残しておく。
と思ったらメモを削除してしまったみたいなので、Redhatはhistoryコマンドで確認した。Windowsは…そのうち書くかも。

■Redhat
・バージョンを確認する

nginx -V


・現行の一式をバックアップしておく

バックアップ先のディレクトリは /mytmp/nginx を作成することにした。

sudo mkdir /mytmp
sudo chmod 777 /mytmp
sudo mkdir /mytmp/nginx
sudo cp -p -r /etc/nginx/* /mytmp/nginx

権限なんかmkdir時に付けろや、とか、ディレクトリは親子ともども作れや、とかいう突っ込みはナシで…。

・バージョンアップ処理を行う

sudo yum update --enablerepo=nginx-stable nginx
cd /etc/nginx/conf.d


・Configファイルのオリジナルを確保しておく

sudo mv default.conf default.conf.org.1.26

 この時点でバージョンを確認すると、新しいバージョンになっている。 Unix系OSはファイルが使用中か否かに関わらずファイルの上塗りをするため、ディレクトリ内にあるバージョンはアップされているが、アプリケーションは起動したままなので再起動を掛けてあげる必要がある。
(アップデート時にもしかしたら勝手に再起動しているかも?と思ったのだが、ちょっと不明瞭)

・nginxを再起動する

sudo systemctl stop nginx
sudo systemctl start nginx

これも restart でもいいのかもしれないが、まあ良しとしてください。

nginxの状態を確認する

systemctl status nginx

これで正常に動いていれば問題ないだろう。

サイト表示等に問題がないか確認する
nginxが稼働しているか、ということと、システムとして動作が正しいかは別問題である。
注意が必要なのは
 /etc/nginx/nginx.conf
 /etc/nginx/conf.d/defaultx.conf
である。

前者のファイルはnginx自体が起動時に読み込むもので、基本的な設定である。これはそのまま使う方も多いかもしれない。今回、アップデート時にこのファイルが新しいバージョンで塗り替わる事象はなかった。

後者のファイルは当方の運用環境では削除し、別名のファイルを用いていたためなのか、このファイルが追加されてしまっていた。前者のファイル内に ./conf.d 配下のどのファイルを読み込むか指定できる(デフォルトでは *.conf)であるため、後者のファイルが追加されたことにより「nginxのデフォルト画面」が表示されるようになった。defaultx.conf 削除するか拡張子を .conf 以外にして再起動すれば解決したが、nginx.confを書き換えた方が問題は小さいのではなかろうか?と思ったり。

これで無事に複数台のnginxをバージョンアップすることができた。