起動して確認
入れただけでは応答しない
前の回で nginx を導入しましたが、まだブラウザからは何も見えません。プログラムがディスクに置かれただけで、動き出してはいないからです。動かす指示を出すのが systemctl です。
systemctl start nginxこのコマンドは、うまくいくと何も表示しません。Linux の道具は「言うことがないときは黙る」という作法で作られています。黙ったら成功、と読み替えてください。
仕組みの話はまるごと次の章で扱います。ここでは、start で動き出し、stop で止まり、status で様子が見える、という操作だけを先に覚えます。
生きているかを2か所から確かめる
動いたかどうかは、サーバー側と利用者側の両方から見ます。
systemctl status nginx表示の中に Active: active (running) とあれば動いています。inactive (dead) なら止まったまま、failed なら起動しようとして失敗しています。この3つの言葉は、これから何度も出てきます。
もう一方は、実際にリクエストを送る確かめ方です。
curl -I http://localhost/
# HTTP/1.1 200 OK
# Server: nginx/1.22.1-I はヘッダーだけを取るオプションです。Server の行に nginx と書いてあることで、返しているのが nginx 本人だと分かります。
動いているのに繋がらないとき
この2つを分けて確かめるのには理由があります。status は動いていると言うのに curl が繋がらない、という状況が実際に起きるからです。設定を間違えて違うポートで待っている、ファイアウォールで塞がれている、といった原因が考えられます。逆に status が failed なら、curl を何度打っても繋がりません。
どちらを先に見るかで、調べる場所が変わります。まずサーバー側、次に利用者側。この順番を癖にしておくと、障害のときに迷いません。
止めてみると分かること
一度止めてみると、繋がらない状態がどう見えるかを体験できます。
systemctl stop nginx
curl -I http://localhost/
# curl: (7) Failed to connect to localhost port 80 after 8 ms: Couldn't connect to server第1章の最初に見た Failed to connect が、ここでもう一度出てきます。誰も待っていない状態に戻った、ということです。
手を動かす
この回では nginx を起動し、デフォルトのページが返ってくることを確かめます。そのあと一度止めて繋がらないことを見てから、また起動して終わります。