HCRM博客

在CentOS系统上轻松部署Nginx服务器

CentOS 下 Nginx 配置实战指南

在 CentOS 服务器上部署网站,Nginx 以其高性能和稳定性成为众多站长的首选,掌握其核心配置是网站高效运行的基础,下面将一步步带你完成关键配置。

安装 Nginx 首先确保系统更新:

在CentOS系统上轻松部署Nginx服务器-图1
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 配置,添加类似片段:

在CentOS系统上轻松部署Nginx服务器-图2
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.confevents 块调整 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/denyauth_basic 保护敏感路径。 ▶ 客户端缓冲区: 适当调整 client_body_buffer_size, client_max_body_size (允许上传文件大小) 等参数。

测试与重载配置 每次修改配置后,务必先测试语法:

在CentOS系统上轻松部署Nginx服务器-图3
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 路径设置,现在打开浏览器,体验你高效稳定的网站吧!

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35506.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~