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起動トラブルは層ごとに切り分けできる
- 「ブラックボックスを減らす」学び方は実務にも直結する
コメントを残す