ゼロから構築ミッション

手順を見ずに、もう一度作る

ここからは総合制作です。1章から7章までで作ってきたものを、手順を見ずに自力で組み立て直します

新しい知識は出てきません。出てくるのは、自分がどこまで身についているかという事実だけです。詰まった場所が、そのまま復習すべき場所になります。

何を作るのか

作るのは、これまでと同じ形のサーバーです。

  1. nginx を入れて、起動して、自動起動を有効にする
  2. サイトの置き場を作り、専用の server ブロックを書く
  3. 自己署名証明書を作り、443 番で待たせる
  4. 80 番から 443 番へ案内する
  5. 自分の 404 ページを返す
  6. 専用のアクセスログとエラーログを出す

今回は /var/www/portfolio という別の場所に、別の設定ファイルで作ります。同じ手順を別の対象でやると、覚えていたのが手順なのか場所なのかがはっきりします

詰まったときの調べ方

手順書は見ませんが、サーバー自身に聞くのは構いません。むしろそれが実務です。

  • nginx -t — 設定に文法の誤りがないか
  • systemctl status nginx — 起動しているか、直近に何が起きたか
  • journalctl -u nginx -n 30 — 起動できなかったときの理由
  • nginx -T — 実際に読み込まれている設定の全体
  • ss -tlnp — どの番号で誰が待っているか
  • tail /var/log/nginx/*error.log — 配信できなかった理由

この6つで、たいていの詰まりは自力で抜けられます。エラーの文面を読む。それが一番の近道です。

つまずきやすいところ

見落としがちな点を挙げておきます。答えではなく、確認の観点です。

  • 設定を書いただけで有効にしていない (sites-enabled へのリンク)
  • 既定のサイトが残っていて、そちらが応答している
  • reload を打っていないので、古い設定のまま動いている
  • 待ち受けは足したのに、ufw で通していない
  • ファイルの権限が www-data から読めない形になっている

どれも、これまでの章で1度ずつ踏んできたものです。

手を動かす

ポートフォリオサイトを、HTTPS で公開できる状態まで自力で作ります。

ヒント

  • 1. /var/www/portfolio に index.html と 404.html を置く
  • 2. openssl で portfolio 用の自己署名証明書と秘密鍵を作る
  • 3. portfolio.conf を書く。80 番は 301 で案内、443 番が中身を持つ
  • 4. 443 番のブロックに access_log と error_log、error_page 404 を書く
  • 5. sites-enabled へリンクを張り、nginx -t のあと reload する
  • 6. ufw で 443 番が通っていることを確かめる
  • 7. curl -skI で 80 番の 301 と、443 番の 200 を確かめる

17 項目で採点します