はじめに
先日からNginxについて理解できていなかった部分を整理してます。
次のリンクにインストールまでの手順をUbuntuそれぞれで記載してますので、そちらも読んでいただけると嬉しいです。
今回は次の記事の続編ですね
注意事項
本記事ではDockerコンテナ上にNginxをインストールした後の設定をみていきますので、実際に手を動かして確認される方は上のリンクを参考にNginxのインストールまでを行ってからにしてください。
初期ページを表示してみよう
設定ファイルの記述はOSに依存しないので、今回はUbuntuのイメージ内での作業のみを記載します。
時間があれば、他のOSイメージ上でも確認してみますね。
Nginxの起動(失敗)
Terminal
# systemctlをインストール
# DockerコンテナでなければUbuntuにsystemdもsystemctlもインストールする必要ないんだけどなぁ。
$ apt install -y systemd
$ apt install -y systemctl
# Nginxの起動状態を確認
$ systemctl status nginx
nginx.service - A ...
Loaded: loaded ....
Active: inactive (dead)
# 上で(dead)と表示されているので、起動していませんね。
# Nginxを起動
$ systemctl start nginx
# もう一度起動状態を確認
$ systemctl status nginx
nginx.service - A ...
Loaded: loaded ....
Active: inactive (dead)
はい、早速起動しませんね。
では、エラーメッセージを確認してみましょう。
エラーメッセージの確認
Terminal
# エラーメッセージの表示
$ cat /var/log/nginx/error.log
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to [::]:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to [::]:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to [::]:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to [::]:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: bind() to [::]:80 failed (98: Address already in use)
2021/02/02 15:45:40 [emerg] 4682#4682: still could not bind()
アドレスが既に使われていると言われていますが、これはポート番号が既に使われているってことなんですよね
エラーの対応
Terminal
# ポートを確認するためにlsofをインストール
$ apt install -y lsof
# lsofコマンドで80番ポートを開いているプロセスを確認
$ lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 4411 root 6u IPv4 1700893 0t0 TCP *:80 (LISTEN)
nginx 4411 root 7u IPv6 1700894 0t0 TCP *:80 (LISTEN)
nginx 4412 www-data 6u IPv4 1700893 0t0 TCP *:80 (LISTEN)
nginx 4412 www-data 7u IPv6 1700894 0t0 TCP *:80 (LISTEN)
nginx 4413 www-data 6u IPv4 1700893 0t0 TCP *:80 (LISTEN)
nginx 4413 www-data 7u IPv6 1700894 0t0 TCP *:80 (LISTEN)
nginx 4414 www-data 6u IPv4 1700893 0t0 TCP *:80 (LISTEN)
nginx 4414 www-data 7u IPv6 1700894 0t0 TCP *:80 (LISTEN)
nginx 4415 www-data 6u IPv4 1700893 0t0 TCP *:80 (LISTEN)
nginx 4415 www-data 7u IPv6 1700894 0t0 TCP *:80 (LISTEN)
# どういうわけか、nginxが起動しているように見えます。
# 一旦、すべてのプロセスを落とします。
$ kill 4411
# nginxを起動
$ systemctl start nginx
# nginxの状態を確認
$ systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service, enabled)
Active: active (running)
これでnginxの起動までは確認することができました。
ブラウザからページにアクセスしてみます。
これで起動までは確認することができました。
次回から設定編を行っていきます。