起動して確認

入れただけでは応答しない

前の回で 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 を起動し、デフォルトのページが返ってくることを確かめます。そのあと一度止めて繋がらないことを見てから、また起動して終わります。

ヒント

  • 1. systemctl start nginx で起動する
  • 2. systemctl status nginx で active (running) を確かめる
  • 3. curl -I http://localhost/ でヘッダーを見る
  • 4. systemctl stop nginx のあと curl を打ち、繋がらないことを見る
  • 5. もう一度起動し、curl -I http://localhost/ > /root/first-nginx.txt で保存する

4 項目で採点します