Linux部署Nginx有两种可靠方式:一是用包管理器安装,适用于主流发行版,自动处理依赖并集成systemd;二是源码编译安装,可定制模块、路径和优化性能,适合高安全与功能要求的生产环境。

如果您在Linux系统中需要部署Web服务,但尚未安装Nginx,则需根据系统环境与定制需求选择合适的安装路径。以下是两种主流且经验证可靠的安装方法:
一、使用包管理器安装Nginx
该方式适用于CentOS/RHEL 7/8、AlmaLinux、Rocky Linux及Ubuntu/Debian等主流发行版,由系统仓库提供预编译二进制包,自动处理依赖关系,并集成systemd服务管理,适合快速部署与日常运维。
1、更新系统软件包索引:执行命令sudo yum update -y(CentOS/RHEL)或sudo apt update && sudo apt upgrade -y(Ubuntu/Debian)。
2、安装EPEL扩展源(仅CentOS 7必需):执行命令sudo yum install epel-release -y;RHEL 8+、AlmaLinux、Rocky Linux默认已启用,可跳过此步。
3、安装Nginx主程序:执行命令sudo yum install nginx -y(CentOS/RHEL)或sudo apt install nginx -y(Ubuntu/Debian)。
4、启动服务并设为开机自启:执行命令sudo systemctl start nginx && sudo systemctl enable nginx。
5、验证运行状态:执行命令sudo systemctl status nginx,确认输出中显示active (running);同时执行sudo ss -tlnp | grep :80,应可见nginx监听80端口。
二、源码编译安装Nginx
该方式允许精确控制安装路径、启用特定模块(如http_ssl_module、http_v2_module、ngx_brotli)、关闭冗余功能,并适配CPU指令集优化性能,适用于对安全性、功能扩展性或版本时效性有明确要求的生产环境。
1、安装基础编译工具链:执行命令sudo yum groupinstall "Development Tools" -y(CentOS/RHEL)或sudo apt install build-essential -y(Ubuntu/Debian)。
2、安装运行时依赖库:执行命令sudo yum install pcre-devel zlib-devel openssl-devel -y(CentOS/RHEL)或sudo apt install libpcre3-dev zlib1g-dev libssl-dev -y(Ubuntu/Debian)。
3、创建低权限运行用户:执行命令sudo useradd -r -s /sbin/nologin nginx,以降低潜在安全风险。
4、下载并解压Nginx源码包(以1.26.2稳定版为例):执行命令wget https://nginx.org/download/nginx-1.26.2.tar.gz && tar -zxvf nginx-1.26.2.tar.gz && cd nginx-1.26.2。
5、配置编译参数:执行命令./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module。
6、编译并安装:执行命令make && sudo make install。
7、创建systemd服务单元文件:执行命令sudo tee /etc/systemd/system/nginx.service ,随后粘贴以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target 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 stop
[Install]
WantedBy=multi-user.target
EOF
8、重载systemd配置并启动服务:执行命令sudo systemctl daemon-reload && sudo systemctl start nginx && sudo systemctl enable nginx。










