CentOS 下 Nginx 配置实战指南
在 CentOS 服务器上部署网站,Nginx 以其高性能和稳定性成为众多站长的首选,掌握其核心配置是网站高效运行的基础,下面将一步步带你完成关键配置。
安装 Nginx 首先确保系统更新:

sudo yum update -y
通过 EPEL 仓库安装稳定版 Nginx:
sudo yum install epel-release -y sudo yum install nginx -y
安装完成后启动服务并设置开机自启(CentOS 7/8+):
sudo systemctl start nginx sudo systemctl enable nginx
关键配置文件解析 Nginx 的核心配置位于 /etc/nginx/ 目录: ▶ nginx.conf:主配置文件,包含全局设置(工作进程数、连接数等)。 ▶ conf.d/ 目录:推荐存放各个站点的独立配置文件(*.conf)。 ▶ sites-available/ & sites-enabled/:部分发行版使用,CentOS 通常用 conf.d/。
配置一个基础网站 (Virtual Host) 在 /etc/nginx/conf.d/ 下创建配置文件(如 my_site.conf):
server {
listen 80; # 监听端口
server_name yourdomain.com www.yourdomain.com; # 你的域名
root /var/www/my_site/html; # 网站根目录
index index.html index.htm; # 默认首页文件
# 基础日志设置
access_log /var/log/nginx/my_site.access.log;
error_log /var/log/nginx/my_site.error.log;
location / {
try_files $uri $uri/ =404; # 尝试查找请求的文件或目录
}
# 静态文件处理优化 (如图片、CSS、JS)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d; # 客户端缓存30天
add_header Cache-Control "public";
}
} 配置 SSL/TLS 启用 HTTPS (Let's Encrypt 示例) 安全传输至关重要,使用 Certbot 获取免费证书:
sudo yum install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot 会自动修改你的 Nginx 配置,添加类似片段:

server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3; # 使用现代安全协议
# ... 其他 SSL 优化参数由 Certbot 自动配置 ...
# 原有 location 等配置保持不变
} 同时会自动添加 80 端口重定向到 HTTPS 的配置。
反向代理应用 (如 Node.js, Python) Nginx 擅长处理静态请求,动态应用通常由后端服务器处理:
location /api/ {
proxy_pass http://localhost:3000; # 指向应用实际监听地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} PHP-FPM 集成 (如 WordPress) 对于 PHP 应用,需配置 Nginx 与 PHP-FPM 通信:
location ~ \.php$ {
try_files $uri =404; # 防止任意文件执行
fastcgi_pass unix:/run/php-fpm/www.sock; # 根据实际 PHP-FPM 配置调整
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} 优化与安全加固 ▶ 工作进程与连接数: 在 nginx.conf 的 events 块调整 worker_connections,在全局调整 worker_processes (通常设为 CPU 核心数)。 ▶ Gzip 压缩: 在 http 块内启用,提升传输速度:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_proxied any; ▶ 限制访问: 使用 location 配合 allow/deny 或 auth_basic 保护敏感路径。 ▶ 客户端缓冲区: 适当调整 client_body_buffer_size, client_max_body_size (允许上传文件大小) 等参数。
测试与重载配置 每次修改配置后,务必先测试语法:

sudo nginx -t
测试无误后,平滑重载配置使生效:
sudo systemctl reload nginx # 或 sudo nginx -s reload
排错常用命令 ▶ 检查错误日志:sudo tail -f /var/log/nginx/error.log ▶ 检查访问日志:sudo tail -f /var/log/nginx/access.log ▶ 检查端口监听:sudo netstat -tulpn | grep nginx ▶ 检查进程状态:sudo systemctl status nginx
合理的 Nginx 配置是网站流畅体验的基石,从虚拟主机定义、HTTPS 强制实施到后端应用的精准代理,每一步都关乎性能与安全,保持配置文件简洁清晰,善用 conf.d/ 分割管理不同站点,遇到 502 错误优先检查后端服务状态,403 则关注目录权限与 root 路径设置,现在打开浏览器,体验你高效稳定的网站吧!
