10. LFS上でnginxを動かす: 小型Webサーバー完成

10. LFS上でnginxを動かす: 小型Webサーバー完成

ここまででLinux内部の主要部品を見てきました。

最終回では、自作Linux (LFS) 上でnginxを動かし、理解を1つに統合します。

ゴール

  • LFS環境でnginxを起動する
  • ブラウザまたはcurlで疎通確認する
  • 失敗時に切り分けできる状態になる

全体手順

1. 必要ライブラリと依存を準備

2. nginxをビルド

3. 実行ユーザーとディレクトリを作成

4. 設定ファイルを作成

5. 起動して確認

図解テキスト


nginx source
  -> configure + make
  -> nginx binary
  -> loads shared libraries
  -> bind :80
  -> receives HTTP requests
  -> returns static files

例: ビルドの流れ


tar xf nginx-1.28.0.tar.gz
cd nginx-1.28.0

./configure \
  --prefix=/usr/local/nginx \
  --with-http_ssl_module

make
make install

実行ユーザーとドキュメントルート


groupadd nginx || true
useradd -g nginx -s /sbin/nologin -M nginx || true

mkdir -p /usr/local/nginx/html
echo 'hello from lfs nginx' > /usr/local/nginx/html/index.html

最小設定例


worker_processes  1;

events {
  worker_connections  1024;
}

http {
  server {
    listen 80;
    server_name _;
    root /usr/local/nginx/html;
    index index.html;
  }
}

保存先の例: /usr/local/nginx/conf/nginx.conf

起動と確認


/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx
ss -ltnp | grep :80
curl -i http://127.0.0.1

うまく動かないときの確認順

1. バイナリ依存: ldd /usr/local/nginx/sbin/nginx

2. 設定構文: nginx -t

3. ポート競合: ss -ltnp | grep :80

4. 権限: ドキュメントルートと実行ユーザー

5. ログ: error.log

ここまでの総まとめ

このシリーズで見た内容は、すべてnginx起動に関係しています。

  • boot process: そもそもOSが立ち上がる
  • kernel/process: nginx processが動く
  • filesystem: 設定や静的ファイルを読む
  • systemd: サービスとして管理する
  • shared library: 実行時依存を解決する
  • networking: HTTP通信を届ける
  • build system: バイナリを作る

今回理解できたこと

  • Linux内部の知識は、最終的に1つの動くシステムに統合される
  • nginx起動トラブルは層ごとに切り分けできる
  • 「ブラックボックスを減らす」学び方は実務にも直結する

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です