【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 ]をアップデートしちゃいましょう。
1 | $ sudo apt update |
次は、aptがパッケージを使用するために認証を行うキーを確認します。[ apt-key ]については こちら へ。
1 | $ sudo apt-key list |
1 2 3 4 5 | /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) <ftpmaster@ubuntu.com> |
当然ですが、Nginxのリポジトリを登録していないので、リストにPGPキーはありません。
なので、PGPキーをダウンロードします。
2. PGPキーのダウンロード&インポート
公式HPからアドレスを頂戴します。ページは こちら です。
Ubuntuにはリポジトリを登録する予定なので、一番下のリンクをコピーします。
EC2インスタンスに戻って、以下のコマンドの感じになると思います。そしたら実行してください。
1 | $ wget http://nginx.org/keys/nginx_signing.key |
1 2 3 4 5 6 7 8 9 10 | --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] |
上記のような感じで100%やOKと表示されたらPGPキーのダウンロードは完了です。
そうしましたら、今度はインポートします。
1 | $ sudo apt-key add nginx_signing.key |
OKと表示されたらインポート完了です。再度PGPキーリストを確認します。
1 | $ sudo apt-key list |
1 2 3 4 5 6 7 8 9 10 11 | /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 <signing-key@nginx.com> /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) <ftpmaster@ubuntu.com> |
情報が増えていると思います。これでUbuntuへのPGPキーのインポートは完了です。
ただ、Nginxをインストールするには、もうワンステップ必要です。
3. 公式リポジトリURLを追記
利用可能なパッケージとして、aptの一覧に追記してあげる必要があります。これをしないとリストにNginxがありませんので、インストールが出来ません。
対応は簡単で、[ /etc/apt/sources.list ]ファイルの最後に2行追加するだけです。
1 2 3 4 5 6 7 8 | $ 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 |
これでNginxの公式リポジトリURLの追加が完了しました。やっとインストール可能な状態になりました。
4. Nginxインストール
aptの設定を変更したので、再度アップデートしておきましょう。
1 | $ sudo apt update |
一応、[ apt show ]でNginxのバージョンを確認しましょう。
1 | $ apt show nginx |
1 2 3 4 5 | ackage: nginx Version: 1.16.1-1~bionic Priority: optional Section: httpd Maintainer: Sergey Budnevitch <sb@nginx.com> |
現時点での最新です、問題なさそうですね。ついでに、[ apt-cache policy nginx ]でも確認するのも良いと思います。
早速インストールしましょう。
1 | $ sudo apt install nginx -y |
インストールが成功していたら、[ nginx ]コマンドが使用できるようになっています。
確認で、バージョンを表示してみましょう。
1 2 3 | $ nginx -v nginx version: nginx/1.16.1 |
バージョンの確認が出来ました!無事インストール成功です。
ついでに起動もしておきましょう。
1 | $ sudo systemctl start nginx |
これで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 になります。
1 2 | sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org sudo vim /etc/nginx/conf.d/default.conf |
とりあえず、ルートドキュメントを変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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; .... } |
保存したら、Nginxを再起動します。( 行末のセミコロンは忘れずに。エラーになりますので。 )
1 2 | sudo systemctl restart nginx systemctl status nginx |
あとは、[ /var/www ]に、[ index.html ]を作成し、再度ブラウザでパブリックIPを叩いてあげれば、ドキュメントルート変更先のindex.htmlが表示されます。これで完了です。
この工程は、ドキュメントルートが[ /usr/share/nginx/html ]で問題ない方は不要です。
ちなみに、上記の設定ファイルの書き方の場合、[ http://000.000.000.000/ ]でアクセスした際のドキュメントルートが[ /var/www ]になるだけですので、共通のドキュメントルートにしたい場合は、[ server ]ディレクティブ直下に記載すると良いでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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; .... } |
まとめ
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