在 Debian 上“编译 nginx”通常有两种理解:用 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/适合需要 第三方模块、特定编译参数 的情况。
sudo apt update
sudo apt install -y \
build-essential \
libpcre3 libpcre3-dev \
zlib1g zlib1g-dev \
libssl-dev \
wget curl
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
(版本号可改为最新稳定版)
基本示例:
./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/modulemake
sudo make install
sudo /usr/local/nginx/sbin/nginx
验证:
/usr/local/nginx/sbin/nginx -V
创建文件:
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 | 简单、安全、易升级 | 模块不可定制 |
| 源码 | 可定制、可控 | 需手动维护升级 |
如果你愿意,可以告诉我:
我可以给你一套更精确的编译方案。