Nginx服务器配置全攻略:从入门到高阶优化
为什么选择Nginx?
Nginx作为轻量级高性能的Web服务器,在全球网站中占据34.2%的市场份额(Netcraft数据)。其事件驱动架构能轻松应对C10K问题,相比传统Apache服务器,在静态内容处理上有着5-10倍的性能优势。
| 对比项 | Nginx | Apache |
|---|---|---|
| 并发处理 | 事件驱动,高并发 | 进程/线程模式 |
| 内存占用 | 约2.5MB/万连接 | 约8MB/进程 |
基础安装与配置
Linux环境安装
# Ubuntu/Debian
sudo apt update
sudo apt install nginx
# CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx
核心配置文件结构
- /etc/nginx/nginx.conf - 主配置文件
- /etc/nginx/conf.d/ - 附加配置目录
- /var/log/nginx/ - 日志文件目录
关键配置参数详解
worker_processes
设置工作进程数,建议设置为CPU核心数:
worker_processes auto; # 自动检测CPU核心数
keepalive_timeout
保持连接的超时时间,影响性能的关键参数:
keepalive_timeout 65; # 单位秒
高级优化技巧
Gzip压缩配置
gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1024;
gzip_comp_level 6;
静态文件缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public, no-transform";
}
常见问题排查
502 Bad Gateway错误
可能原因:后端服务崩溃或连接超时
解决方案:检查上游服务状态,调整proxy_read_timeout值
性能瓶颈分析
使用命令监控:
top -p `pgrep nginx | tr '\n' ',' | sed 's/,$//'`
最佳实践总结
- 根据服务器CPU核心数设置worker_processes
- 启用Gzip压缩节省带宽
- 为静态资源配置长期缓存
- 定期检查错误日志(/var/log/nginx/error.log)
- 使用nginx -t测试配置语法
通过合理配置,Nginx可以轻松应对百万级日PV的流量,是企业级Web架构的基石。
