Open2
Linuxにnginxをインストールする

CentOS Stream 9 で構築した仮想環境上にWebサーバ(nginx)を構築する
dnf コマンドは、CentOS などの Linux 系 OS のためのパッケージ管理コマンド
$ sudo dnf install -y nginx
インストール完了後にバージョンを確認する
$ nginx -v
nginx version: nginx/1.20.1
バージョンが出力されたらインストール完了!
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; vendor preset: disabled)
Active: active (running) since Thu 2022-06-16 13:00:42 UTC; 8s ago
Process: 30008 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 30009 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 30010 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 30011 (nginx)
Tasks: 3 (limit: 11091)
Memory: 2.8M
CPU: 19ms
CGroup: /system.slice/nginx.service
├─30011 "nginx: master process /usr/sbin/nginx"
├─30012 "nginx: worker process"
└─30013 "nginx: worker process"
Active: active (running)
ブラウザから接続し、nginxのウェルカムページを表示する
仮想マシン起動時に自動的に nginx が起動するように設定
$ sudo systemctl enable nginx

ブラウザからウェルカムページに接続できない・・・
問題を切り分けていく
nginxは起動してるか?
さっき確認したばかりだけどプロセスを確認
→起動してる
$ ps ax | grep nginx
30011 ? Ss 0:00 nginx: master process /usr/sbin/nginx
30012 ? S 0:00 nginx: worker process
30013 ? S 0:00 nginx: worker process
設定にもよりますが、masater process と worker process があれば OK
worker process の数は環境によって異なるものの、複数存在していても問題なし
nginxが利用するポートは?
ポート番号「80」が使える状態か確認する
→ある
$ netstat -nat | grep LISTEN | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
Webサーバ上から接続できるか?
curlで確認する
→いける
$ curl -I http://192.168.56.12
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Thu, 16 Jun 2022 13:21:08 GMT
Content-Type: text/html
Content-Length: 456389
Last-Modified: Sat, 03 Jul 2021 13:48:21 GMT
Connection: keep-alive
ETag: "60e06aa5-6f6c5"
Accept-Ranges: bytes
てことはサーバ側のファイアーウォール?
ファイアーウォールの状態を確認する
→起動してる、、許可してないので確かに無理ですね
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-06-16 12:36:05 UTC; 46min ago
Docs: man:firewalld(1)
Main PID: 739 (firewalld)
Tasks: 2 (limit: 11091)
Memory: 39.0M
CPU: 514ms
CGroup: /system.slice/firewalld.service
└─739 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
→原因特定!ブラウザから接続できた
ファイアーウォールの細かな設定については今後の課題
小さな発見
ブラウザからではなくローカルPC(Windows)のコマンドプロンプトからの接続確認したいなと
コマンド探したらWindowsでも curl コマンド使えることが分かって発見だった