Debian 12 (bookworm) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)!
Updated:
Debian GNU/Linux 12 (bookworm) に Web サーバ Nginx を Nginx 公式リポジトリを使用して導入する方法についての記録です。
以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
(当然ながら、興味がなければスルーしてください)
0 前提条件
- Debian GNU/Linux 12 (bookworm; 64bit) での作業を想定。
- 接続元のマシンも Debian GNU/Linux 12 (bookworm; 64bit) を想定。
- Debian 公式リポジトリの Nginx はバージョンが古いため、Nginx リポジトリを使用して 1.24.0(当記事執筆時点最新安定版)をインストールする。
- 実際に運用する際は、ドキュメントルートを変更する等、設定を編集すること。
- 一般ユーザでの作業を想定。
1. 必要パッケージのインストール
$ sudo apt -y install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
2. 公式 Nginx 署名キーのインポート
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
3. 署名キーの検証
$ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
出力されるフィンガープリンが以下と一致することを確認する。
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
4. apt リポジトリの設定
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
5. apt リポジトリの優先度設定
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
6. Nginx のインストール
$ sudo apt -y update
$ sudo apt -y install nginx
7. インストールの確認
Nginx がインストールできたか確認してみる。(-v
の代わりに -V
オプションを使用すると詳細に表示される)
$ sudo nginx -v
nginx version: nginx/1.24.0
8. 設定
今回のインストール環境の場合、基本的(グローバル)な設定のファイルは /etc/nginx/nginx.conf
で、このファイルから /etc/nginx/conf.d
ディレクトリ配下の設定ファイルを読み込む形式となっている。
取り急ぎ、デフォルトのままとした。
詳細な設定は、「当ブログ Nginx 関連の過去記事」を参照。
9. ファイアウォール(ufw)の設定
TCP ポート 80 を開放する必要がある。(HTTPS の場合は TCP: 443)
$ sudo ufw allow 80/tcp
Rule added
$ sudo ufw status
:
80/tcp ALLOW Anywhere
:
10. サーバの起動
$ sudo systemctl start nginx
11. 起動確認
ブラウザで http://<サーバアドレス or ホスト名>/
にアクセスしてみる。
Welcome to nginx!
と以下5行くらい表示されば成功。
12. 自動起動の設定
マシン起動時に自動で Nginx を起動させるには以下のようにする。(インストール直後は自動起動するようになっているはずなので、そうなっていない場合)
$ sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
$ sudo systemctl is-enabled nginx
enabled
(nginx
はネイティブなサービスでないため、 systemd-sysv-install
にリダイレクトされる)
自動起動しないようにするには、
# systemctl disable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable nginx
Removed "/etc/systemd/system/multi-user.target.wants/nginx.service".
# systemctl is-enabled nginx
disabled
13. 参考サイト
以上。
Comments