【AWS】EC2でWebサーバの構築 – Nginx構築 -【Nginx】
2019.12.11

どうも、むつたくです。
師走になりました。年末の大掃除を軽くすべく、やれるところから掃除をしてます。
そんな中、上の娘が窓ガラスにマーキングをしてました。ヨダレで…。
綺麗にしても汚されるので、磨く→汚す→磨くの無限ループでいつの間にか一緒に遊び、妻に怒られる…、小さな子供と大きな子供です。掃除が進まないのが悩みです。
さて、今回も前回からの引き続きでAWSのEC2インスタンスにNginxをインストールして、Webサーバを構築する記事を書いていきます。
前回までの記事は↓こちら↓。
パート1 → 【AWS】EC2でWebサーバの構築 – VPC作成 -【Nginx】
パート2 → 【AWS】EC2でWebサーバの構築 – EC2インスタンス構築 -【Nginx】
今回の構築手順はこんな感じでしょう。
- Nginxのインストール
- アクセス確認
- Nginxの設定
EC2インスタンスだからと言って、特別なことはしません。普段通りに構築していく感じになります。
では、やっていきましょう。
環境
・OS: Ubuntu18.04 LTS Server
・Nginx: 1.16.1
Nginxのインストール
Nginxって何通りかのインストール方法があるんですよね。ここでは、公式ドキュメント通りにインストールしていきます。
公式ドキュメントは こちら を参照してください。
また、PGPキーを既に登録済の方は、読み飛ばして問題ありません。
1. Ubuntuの登録済PGPキーの確認
まずは[ apt ]をアップデートしちゃいましょう。
[cc_bash]
$ sudo apt update
[/cc_bash]
次は、aptがパッケージを使用するために認証を行うキーを確認します。[ apt-key ]については こちら へ。
[cc_bash]
$ sudo apt-key list
[/cc_bash]
[cc_bash]
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
——————————————————
pub rsa4096 2012-05-11 [SC]
790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32
uid [ unknown] Ubuntu Archive Automatic Signing Key (2012)
[/cc_bash]
当然ですが、Nginxのリポジトリを登録していないので、リストにPGPキーはありません。
なので、PGPキーをダウンロードします。
2. PGPキーのダウンロード&インポート
公式HPからアドレスを頂戴します。ページは こちら です。
Ubuntuにはリポジトリを登録する予定なので、一番下のリンクをコピーします。
EC2インスタンスに戻って、以下のコマンドの感じになると思います。そしたら実行してください。
[cc_bash]
$ wget http://nginx.org/keys/nginx_signing.key
[/cc_bash]
[cc_bash]
–2019-12-10 08:25:50– http://nginx.org/keys/nginx_signing.key
Resolving nginx.org (nginx.org)… 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1561 (1.5K) [text/plain]
Saving to: ‘nginx_signing.key’
nginx_signing.key 100%[=============================>] 1.52K –.-KB/s in 0s
2019-12-10 08:25:51 (162 MB/s) – ‘nginx_signing.key’ saved [1561/1561]
[/cc_bash]
上記のような感じで100%やOKと表示されたらPGPキーのダウンロードは完了です。
そうしましたら、今度はインポートします。
[cc_bash]
$ sudo apt-key add nginx_signing.key
[/cc_bash]
OKと表示されたらインポート完了です。再度PGPキーリストを確認します。
[cc_bash]
$ sudo apt-key list
[/cc_bash]
[cc_bash]
/etc/apt/trusted.gpg
——————–
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
uid [ unknown] nginx signing key
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
——————————————————
pub rsa4096 2012-05-11 [SC]
790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32
uid [ unknown] Ubuntu Archive Automatic Signing Key (2012)
[/cc_bash]
情報が増えていると思います。これでUbuntuへのPGPキーのインポートは完了です。
ただ、Nginxをインストールするには、もうワンステップ必要です。
3. 公式リポジトリURLを追記
利用可能なパッケージとして、aptの一覧に追記してあげる必要があります。これをしないとリストにNginxがありませんので、インストールが出来ません。
対応は簡単で、[ /etc/apt/sources.list ]ファイルの最後に2行追加するだけです。
[cc_bash]
$ sudo sh -c “echo ‘deb http://nginx.org/packages/ubuntu/ bionic nginx’ >> /etc/apt/sources.list”
$ sudo sh -c “echo ‘deb-src http://nginx.org/packages/ubuntu/ bionic nginx’ >> /etc/apt/sources.list”
# もしくは vimコマンドで編集(カーソルは最終行に移動させる)
$ sudo vim /etc/apt/sources.list
deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx
[/cc_bash]
これでNginxの公式リポジトリURLの追加が完了しました。やっとインストール可能な状態になりました。
4. Nginxインストール
aptの設定を変更したので、再度アップデートしておきましょう。
[cc_bash]
$ sudo apt update
[/cc_bash]
一応、[ apt show ]でNginxのバージョンを確認しましょう。
[cc_bash]
$ apt show nginx
[/cc_bash]
[cc_bash]
ackage: nginx
Version: 1.16.1-1~bionic
Priority: optional
Section: httpd
Maintainer: Sergey Budnevitch
現時点での最新です、問題なさそうですね。ついでに、[ apt-cache policy nginx ]でも確認するのも良いと思います。
早速インストールしましょう。
[cc_bash]
$ sudo apt install nginx -y
[/cc_bash]
インストールが成功していたら、[ nginx ]コマンドが使用できるようになっています。
確認で、バージョンを表示してみましょう。
[cc_bash]
$ nginx -v
nginx version: nginx/1.16.1
[/cc_bash]
バージョンの確認が出来ました!無事インストール成功です。
ついでに起動もしておきましょう。
[cc_bash]
$ sudo systemctl start nginx
[/cc_bash]
これでOKです。
万一、失敗している場合は、エラーログが吐き出されていると思いますので、そちらを確認&消化していってください。
アクセス確認
前々回の記事でセキュリティグループのインバウンドルールにHTTPを追加(許可)していると思います。もし、抜けている場合は、ポートが閉じられており、通信できないので追加をしてください。
ブラウザから[ http://000.000.000.000/ ]でアクセスしてみます。000.000.000.000の部分はEC2インスタンスのパブリックIPです。
下記が表示されましたらEC2へのアクセスは問題なく行えており、Nginxも機能してます🎉。
Nginxの設定
次はNginxの設定を確認します。
アクセス出来ていたから問題ないのかもしれませんが、デフォルトの設定ですとドキュメントルートが[ /var/www ]ではないので、変更します。
設定ファイルの場所は、[ /etc/nginx/nginx.conf ]、[ /etc/nginx/conf.d/default.conf ]です。
default.conf は nginx.conf にインクルードされていると思いますので、基本変更するのは default.conf になります。
[cc_bash]
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
sudo vim /etc/nginx/conf.d/default.conf
[/cc_bash]
とりあえず、ルートドキュメントを変更します。
[cc_bash]
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html; # この行をコメントアウトします
root /var/www; # この行を追加します。
index index.html index.htm;
}
#error_page 404 /404.html;
….
}
[/cc_bash]
保存したら、Nginxを再起動します。( 行末のセミコロンは忘れずに。エラーになりますので。 )
[cc_bash]
sudo systemctl restart nginx
systemctl status nginx
[/cc_bash]
あとは、[ /var/www ]に、[ index.html ]を作成し、再度ブラウザでパブリックIPを叩いてあげれば、ドキュメントルート変更先のindex.htmlが表示されます。これで完了です。
この工程は、ドキュメントルートが[ /usr/share/nginx/html ]で問題ない方は不要です。
ちなみに、上記の設定ファイルの書き方の場合、[ http://000.000.000.000/ ]でアクセスした際のドキュメントルートが[ /var/www ]になるだけですので、共通のドキュメントルートにしたい場合は、[ server ]ディレクティブ直下に記載すると良いでしょう。
[cc_bash]
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
root /var/www; # 適当にこの辺りに追加。
location / {
index index.html index.htm;
}
#error_page 404 /404.html;
….
}
[/cc_bash]
まとめ
NginxのインストールはPGPキーさえしっかり管理していれば、問題なく構築出来ます。設定関連の情報もあちこちに落ちてますので、参考になるものもたくさんあります。EC2だとしても簡単に出来ますので、ぜひ利用していきましょう。
それでは、またの機会に!
↓↓↓ぜひチェックしてください
~提供中のヒューマンセンシング技術~
◆人物検出技術
歩行者・来店者数計測やロボット搭載も
https://humandetect.pas-ta.io
◆視線検出技術
アイトラッキングや次世代UIに
https://eyetrack.pas-ta.io
◆生体判定技術
eKYC・顔認証のなりすまし対策を!
https://bio-check.pas-ta.io
◆目検出技術
あらゆる目周りデータを高精度に取得
https://pupil.pas-ta.io
◆音声感情認識技術
会話から怒りや喜びの感情を判定
https://feeling.pas-ta.io
◆虹彩認証技術
目の虹彩を利用した生体認証技術
https://iris.pas-ta.io
