こんにちは、ニキです。
この記事は以下のような方におすすめです。
- 検証用のWebサーバーをさくっと構築したい。
- ロードバランサーは使わない。
- HTTPS通信しなくていい。
今回は、EC2インスタンスにNginxをインストールし、起動確認まで行います。
とりあえずブラウザからアクセスできる環境が欲しいような場合に参考になればと思います。
EC2インスタンスは作成済みの前提です。
作成方法は以下の記事で解説しています。
EC2インスタンスにNginxをインストールする
まず、dnfコマンドを使ってNginxパッケージを探します。
以下のようにNginxが見つかります。
$ dnf search nginx
Amazon Linux 2023 repository 45 MB/s | 17 MB 00:00
Amazon Linux 2023 Kernel Livepatch repository 762 kB/s | 153 kB 00:00
============================================================ Name Exactly Matched: nginx =============================================================
nginx.aarch64 : A high performance web server and reverse proxy server
=========================================================== Name & Summary Matched: nginx ============================================================
collectd-nginx.aarch64 : Nginx plugin for collectd
nginx-all-modules.noarch : A meta package that installs all available Nginx modules
nginx-core.aarch64 : nginx minimal core
nginx-filesystem.noarch : The basic directory layout for the Nginx server
nginx-mimetypes.noarch : MIME type mappings for nginx
nginx-mod-devel.aarch64 : Nginx module development files
nginx-mod-http-image-filter.aarch64 : Nginx HTTP image filter module
nginx-mod-http-perl.aarch64 : Nginx HTTP perl module
nginx-mod-http-xslt-filter.aarch64 : Nginx XSLT module
nginx-mod-mail.aarch64 : Nginx mail modules
nginx-mod-stream.aarch64 : Nginx stream modules
Amazon Linux 2 でお馴染みのamazon-linux-extrasは、Amazon Linux 2023で廃止になりました。
Amazon Linux 2023
Nginxをインストールします。
yオプションを使って、インタラクティブなインストールを回避しています。
$ sudo dnf install -y nginx
インストールできたかを確認します。以下のように表示されればインストールは成功です。
$ nginx -v
nginx version: nginx/1.24.0
EC2インスタンス上のNginxを起動する
Nginxを起動します。
$ sudo systemctl start nginx
起動できたかを確認します。以下のように表示されれば起動しています。
$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)
Active: active (running) since Thu 2023-09-21 13:42:02 UTC; 6s ago
Process: 24877 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 24878 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 24879 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 24880 (nginx)
Tasks: 3 (limit: 2131)
Memory: 3.0M
CPU: 51ms
CGroup: /system.slice/nginx.service
├─24880 "nginx: master process /usr/sbin/nginx"
├─24881 "nginx: worker process"
└─24882 "nginx: worker process"
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal systemd[1]: Starting nginx.service - The nginx HTTP and reverse proxy server...
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal nginx[24878]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal nginx[24878]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal systemd[1]: Started nginx.service - The nginx HTTP and reverse proxy server.
次回のインスタンス起動時に、自動でNginxが起動するように設定します。
$ sudo systemctl enable nginx
Webサーバー(EC2インスタンス)へアクセスする
まず、curlコマンドでインスタンス内部からWebサーバーへアクセスできるかを確認します。
$ curl localhost
以下のように表示されれば、アクセス成功です。
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
インスタンス外側からもアクセスできるかを確認します。
EC2インスタンスのパブリック IPv4 DNSかパブリックIPへブラウザからアクセスし、以下のように表示されれば成功です。
まとめ
この記事は以下のような方におすすめできるように、執筆しました。
- 検証用のWebサーバーをさくっと構築したい。
- ロードバランサーは使わない。
- HTTPS通信しなくていい。