渡邊です。
nginxにはStable版とMainline版の2つのバージョン系統があります。
Stable版は、APIの変更を伴わないバグ修正が取り込まれるバージョンです。
Mainline版は、新機能の取り込みが活発なバージョンです。
開発元によると、nginxへの変更(新機能、アップデート、バグ修正等)はまずMainline版に取り込まれます。Mainline版に取り込まれた変更のうち、重大なバグ修正のみがStable版に取り込まれる方針となっているそうです。メジャーバージョンが変わる際は、Mainline版からStable版が分岐し、同時に古いStable版はサポート終了となります。
開発元では、特別の理由がない限りはMainline版を利用することを推奨しています。
Amazon Linuxでコマンド「yum install nginx」を実行しただけでは、nginxのStable版がインストールされます。nginxのMainline版をインストールするにはリポジトリの追加などが必要となります。
そこで、『Amazon Linux』と『Amazon Linux 2』へのnginx(Mainline版)インストール方法をまとめました。
構築の流れ
前述の通り、今回は『Amazon Linux』と『Amazon Linux 2』を扱います。
OSにログインしてインストール作業を実行することも出来ますが、今回はユーザーデータにシェルスクリプトを入力することでインストールを実行します。『Amazon Linux』と『Amazon Linux 2』のそれぞれの場合のユーザーデータは後掲します。
HTTP接続して動作を確認出来ます。
ユーザーデータ(Amazon Linuxの場合)
『Amazon Linux』の場合、ユーザーデータは下記の通り入力します。
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/sh { echo '[nginx]' echo 'name=nginx repo' echo 'baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/' echo 'gpgcheck=1' echo 'enabled=1' echo 'gpgkey=https://nginx.org/keys/nginx_signing.key' } > /etc/yum.repos.d/nginx.repo yum install nginx --disablerepo=amzn-main -y service nginx start chkconfig nginx on |
ユーザーデータ(Amazon Linux 2の場合)
『Amazon Linux 2』の場合、ユーザーデータは下記の通り入力します。
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/sh { echo '[nginx]' echo 'name=nginx repo' echo 'baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/' echo 'gpgcheck=1' echo 'enabled=1' echo 'gpgkey=https://nginx.org/keys/nginx_signing.key' } > /etc/yum.repos.d/nginx.repo yum install nginx -y systemctl start nginx systemctl enable nginx.service |
参考書籍
下記の書籍を参考にさせて頂きました。ありがとうございます。
nginx実践ガイド (渡辺高志 著、インプレス)
https://book.impress.co.jp/books/1115101148
参考リンク
下記の記事を参考にさせて頂きました。ありがとうございます。
Linux インスタンスでの起動時のコマンドの実行
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html
nginx: Linux packages
https://nginx.org/en/linux_packages.html
どのバージョンのnginxを使うべきか?
https://bokko.hatenablog.com/entry/2014/05/24/220554
[nginx] Amazon Linuxにnginxをインストールする (nginx本家パッケージ)
https://qiita.com/tcsh/items/ab40d61944f4ab5ecd8d
CentOS 7 サービス自動起動設定
http://www.server-memo.net/centos-settings/centos7/systemctl-enable.html
おわりに
以上、『Amazon Linux』と『Amazon Linux 2』へのnginx(Mainline版)インストール方法をまとめました。
リポジトリの取り扱いはまだ勉強すべきことがあると感じました。また、ユーザーデータを積極的に活用していきたいと思います。
最後までお読み頂きありがとうございました。