Nginx 安装与配置全流程指南(2025 最新版)
一、环境准备与依赖安装
1.1 系统要求
- 操作系统:支持主流 Linux 发行版(Ubuntu 20.04+/CentOS 7+/Debian 10+)
- 硬件配置:内存 ≥512MB,磁盘 ≥10GB 可用空间(建议使用 SSD)
- 网络要求:开放 80/443 端口(可通过
firewall-cmd --list-ports
验证)
1.2 安装基础依赖
# Ubuntu/Debian
sudo apt update && sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev# CentOS/RHEL
sudo yum groupinstall "Development Tools" -y
sudo yum install -y pcre-devel zlib-devel openssl-devel
说明:
build-essential
包含 GCC 编译工具链pcre
支持正则表达式重写规则zlib
提供 HTTP 压缩功能openssl
启用 HTTPS 支持
二、三种主流安装方式
2.1 包管理器安装(推荐新手)
# Ubuntu/Debian
sudo apt install nginx -y
sudo systemctl enable --now nginx# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
优势:
- 自动处理依赖关系
- 默认集成 systemd 服务管理
- 配置文件路径标准化(
/etc/nginx/nginx.conf
)
2.2 源码编译安装(定制化推荐)
# 下载最新稳定版(以 1.25.3 为例)
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3# 配置编译参数
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_v2_module \--with-threads \--with-stream# 编译安装
make -j $(nproc) && sudo make install# 创建系统服务
sudo nano /etc/systemd/system/nginx.service
服务文件内容:
[Unit]
Description=The NGINX HTTP server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PIDFile=/usr/local/nginx/logs/nginx.pid[Install]
WantedBy=multi-user.target
关键参数说明:
--with-threads
启用线程池提升并发性能--with-stream
支持 TCP/UDP 代理
2.3 Docker 容器化部署
# 拉取官方镜像
docker pull nginx:1.25-alpine# 启动容器(映射配置与静态资源)
docker run -d \--name nginx \-p 80:80 \-p 443:443 \-v /path/to/conf:/etc/nginx/conf.d \-v /path/to/html:/usr/share/nginx/html \nginx:1.25-alpine
优势:
- 快速部署与版本切换
- 配置与数据持久化存储
- 支持 Kubernetes 集群化扩展
三、核心配置优化
3.1 安全加固
# /etc/nginx/nginx.conf
server_tokens off; # 隐藏版本信息
client_max_body_size 10m; # 限制上传文件大小
limit_conn_zone $binary_remote_addr zone=addr:10m; # 防止 DDoS 攻击
add_header X-Content-Type-Options "nosniff"; # MIME 类型安全
3.2 性能优化
events {worker_connections 10240;multi_accept on;use epoll; # Linux 高效事件模型
}http {gzip on;gzip_types text/plain text/css application/json application/javascript;open_file_cache max=10000 inactive=30s; # 文件缓存优化
}
调优效果:
- 静态文件吞吐量提升 3-5 倍
- 内存占用降低 20%
四、验证与测试
4.1 基础验证
# 检查版本与模块
nginx -V# 查看服务状态
systemctl status nginx# 测试默认页面
curl -I 127.0.0.1
预期输出:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Apr 2025 08:00:00 GMT
Content-Type: text/html
4.2 压力测试
# 使用 wrk 进行基准测试
wrk -t12 -c400 -d30s http://localhost
典型结果:
Requests/sec: 35678.25
Transfer/sec: 4.21GB
五、常见问题排查
5.1 端口冲突
# 检查 80/443 端口占用
sudo lsof -i :80# 修改监听端口
sed -i 's/listen 80;/listen 8080;/g' /etc/nginx/conf.d/default.conf
5.2 权限问题
# 修复 SELinux 限制
sudo chcon -Rt httpd_sys_content_t /var/www/html/# 调整文件权限
sudo chown -R nginx:nginx /var/log/nginx
六、进阶学习路径
-
反向代理配置:
location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; }
-
SSL 证书部署:
# 使用 Certbot 自动化配置 sudo certbot --nginx -d example.com
-
负载均衡策略:
upstream backend {least_conn;server 192.168.1.101:8080 weight=3;server 192.168.1.102:8080; }
参考资料:
- Windows 基础安装流程
- CentOS 编译安装实践
- Linux 环境优化方案
- 反向代理配置案例
- 多安装方式对比
- 源码编译详解
- 生产环境最佳实践
通过本指南,您已掌握从基础安装到生产级部署的全套技能。建议结合具体业务场景选择安装方式,并持续关注 Nginx 社区的动态更新。