温馨提示×

如何编译debian nginx

小樊
35
2026-09-21 18:52:02
栏目: 智能运维

在 Debian 上“编译 nginx”通常有两种理解:用 apt 直接安装(官方编译好的) 和 从源码自己编译(可定制模块)。下面分别说明。


一、用 apt 安装(最简单,推荐)

适合绝大多数场景。

sudo apt update
sudo apt install nginx -y

安装后常用命令:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

配置文件位置:

  • 主配置:/etc/nginx/nginx.conf
  • 站点配置:/etc/nginx/sites-enabled/

二、从源码编译 nginx(可定制)

适合需要 第三方模块、特定编译参数 的情况。

1. 安装编译依赖

sudo apt update
sudo apt install -y \
  build-essential \
  libpcre3 libpcre3-dev \
  zlib1g zlib1g-dev \
  libssl-dev \
  wget curl

2. 下载 nginx 源码

cd /usr/local/src
sudo wget https://nginx.org/download/nginx-1.26.2.tar.gz
sudo tar -xzf nginx-1.26.2.tar.gz
cd nginx-1.26.2

(版本号可改为最新稳定版)

3. 配置编译参数

基本示例:

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

常见可加参数:

  • --with-http_stub_status_module
  • --with-stream
  • --add-module=/path/to/module

4. 编译并安装

make
sudo make install

5. 启动 nginx

sudo /usr/local/nginx/sbin/nginx

验证:

/usr/local/nginx/sbin/nginx -V

三、编译后做成 systemd 服务(可选)

创建文件:

sudo nano /etc/systemd/system/nginx.service

内容示例:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable nginx
sudo systemctl start nginx

四、apt 安装 vs 源码编译 对比

方式 优点 缺点
apt 简单、安全、易升级 模块不可定制
源码 可定制、可控 需手动维护升级

如果你愿意,可以告诉我:

  • Debian 版本(如 11 / 12)
  • 是否需要 特定模块(如 lua、brotli、rtmp)
  • 是否用于 生产环境

我可以给你一套更精确的编译方案。

0 踩