Skip to content

Debian 安装nginx

在 Debian 系统上安装 Nginx,最直接的方法是使用 APT 包管理器。

下面是一个简要的指南。核心命令如下:

第一步:使用APT安装

  1. 更新包列表:首先,需要更新本地的包缓存,以确保能获取到最新的软件列表。
bash
sudo apt update
  1. 安装Nginx:接着,执行安装命令。系统会自动处理所有依赖项。
bash
sudo apt install nginx -y
  1. 启动并验证:安装完成后,启动Nginx服务并检查其运行状态。
bash
# 启动服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 检查服务状态(应显示 active (running))
sudo systemctl status nginx
  1. 防火墙配置:如果启用了ufw防火墙,需要放行HTTP和HTTPS流量。之后,在浏览器中访问你的服务器IP,看到Nginx欢迎页即表示安装成功。
bash
sudo ufw allow 'Nginx Full'
bash
# 浏览器访问
http://your_server_ip

为什么要升级?从官方源获取更新版本

Debian自带的Nginx版本通常较旧。如果需要更新的功能和修复,建议使用Nginx官方仓库重新安装:

  1. 安装依赖:首先,安装一些必要的工具,比如curlgnupg2,用来添加仓库。
bash
sudo apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
  1. 导入官方GPG密钥并添加仓库:这一步是为了让系统信任这个新的软件源。可以根据需要选择安装stable(稳定版)或mainline(主线版)仓库,Nginx官方更推荐后者用于生产环境。
bash
# 导入签名密钥
curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# 添加主线版(mainline)仓库
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/mainline/debian/ $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
  1. 安装:更新源并安装Nginx。为了避免版本冲突,建议先移除通过Debian源安装的版本。
bash
sudo apt update
sudo apt install nginx -y

进阶选择:编译安装

如果需要特定版本或自定义模块,可以选择编译安装。这通常分三步:

  1. 安装依赖:这是编译的前提,需要安装编译工具和必要的库。
bash
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev -y
  1. 下载源码并编译:从nginx.org下载源码,解压后,用./configure根据需要配置参数,然后执行makesudo make install进行编译与安装。
  2. 配置systemd服务:编译后,可以创建一个systemd服务文件,以便使用systemctl命令来方便地管理它。

📁 常规配置

Nginx在Debian系统中的目录结构清晰,管理起来非常方便。

  • 主配置文件/etc/nginx/nginx.conf
  • 站点配置:位于 /etc/nginx/sites-available/(可用站点)和 /etc/nginx/sites-enabled/(已启用站点)。创建新网站的标准做法是:
    • sites-available/ 下创建配置文件,例如 example.com
    • 测试配置无误后,在 sites-enabled/ 目录创建软链接来激活它。
      bash
      sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  • 日志文件:访问日志和错误日志分别位于 /var/log/nginx/access.log/var/log/nginx/error.log

⚙️ 基本操作命令

使用 systemctl 命令来管理Nginx服务:

操作命令说明
启动sudo systemctl start nginx
停止sudo systemctl stop nginx
重启sudo systemctl restart nginx
重新加载sudo systemctl reload nginx不中断服务,平滑加载新配置
查看状态sudo systemctl status nginx
测试配置sudo nginx -t重载前先检查语法,非常有用

🧐 常见问题排查

如果Nginx无法正常启动,可以按以下步骤排查:

  1. 查看服务状态与日志:这是最直接的排查方法。
bash
sudo systemctl status nginx
sudo tail -f /var/log/nginx/error.log
  1. 检查配置文件:在修改配置后,务必先用 sudo nginx -t 测试语法,避免因配置错误导致服务失败。
  2. 检查端口冲突:确保80和443端口没有被其他程序(如Apache)占用。
bash
sudo lsof -i :80
sudo lsof -i :443
  1. 检查文件和目录权限:确保Nginx的进程用户(通常是www-data)对网站目录和文件有正确的读取权限。
bash
sudo chown -R www-data:www-data /var/www/your_site
  1. 确认防火墙规则:检查防火墙是否已放行HTTP和HTTPS服务。
bash
sudo ufw status

耕书屋