码上笔记

在 Debian 12 上安装新版 Nginx(使用官方 APT 仓库)

适用系统:Debian 12(代号 bookworm
目标:安装比系统默认更新的 Nginx 稳定版(如 1.25.x 或更高)
推荐方式:通过 Nginx 官方 APT 仓库安装(自动更新、易于维护)


✅ 步骤 1:安装必要依赖

sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release

✅ 步骤 2:添加 Nginx 官方 GPG 密钥

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
gpg --dry-run --list-packets /usr/share/keyrings/nginx-archive-keyring.gpg

✅ 步骤 3:添加 Nginx 官方 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

✅ 步骤 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:更新并安装 Nginx

sudo apt update
sudo apt install -y nginx

✅ 步骤 6:启动并启用 Nginx 服务

sudo systemctl start nginx
sudo systemctl enable nginx

✅ 步骤 7:验证安装版本

nginx -v

一键脚本

#!/bin/bash

set -e  # 遇错立即退出

echo "🚀 开始在 Debian 12 上安装最新版 Nginx(来自 nginx.org 官方仓库)..."

# 检查是否为 root 或使用 sudo
if [ "$EUID" -ne 0 ]; then
  echo "❌ 请以 root 用户运行此脚本,或使用 sudo。"
  exit 1
fi

# 检查是否为 Debian 12
if ! grep -q "Debian GNU/Linux 12" /etc/os-release; then
  echo "⚠️  警告:此脚本专为 Debian 12 (Bookworm) 设计,当前系统可能不兼容。"
  read -p "是否继续?(y/N): " -n 1 -r
  echo
  if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    exit 1
  fi
fi

echo "🔧 步骤 1:安装必要依赖..."
apt update
apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring

echo "🔑 步骤 2:导入 Nginx 官方 GPG 密钥..."
curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg

echo "📦 步骤 3:添加 Nginx 官方 APT 仓库..."
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian $(lsb_release -cs) nginx" \
  > /etc/apt/sources.list.d/nginx.list

echo "⚖️  步骤 4:设置 APT 优先级(防止被系统包覆盖)..."
cat > /etc/apt/preferences.d/99nginx <<EOF
Package: *
Pin: origin nginx.org
Pin: release o=nginx
Pin-Priority: 900
EOF

echo "📥 步骤 5:更新软件源并安装 Nginx..."
apt update
apt install -y nginx

echo "⚡ 步骤 6:启动 Nginx 并设置开机自启..."
systemctl start nginx
systemctl enable nginx

echo "✅ 步骤 7:验证安装..."
NGINX_VERSION=$(nginx -v 2>&1 | cut -d'/' -f2)
echo "🎉 Nginx $NGINX_VERSION 已成功安装!"

IP=$(hostname -I | awk '{print $1}')
echo "🌐 请在浏览器中访问 http://$IP 查看默认欢迎页。"

echo "📝 默认网页目录:/usr/share/nginx/html"
echo "📄 主配置文件:/etc/nginx/nginx.conf"
echo "📁 站点配置目录:/etc/nginx/conf.d/"

echo "✅ 安装完成!"