温馨提示×

Nginx配置文件Ubuntu怎么修改

小樊
33
2025-12-26 20:39:10
栏目: 智能运维

Ubuntu 修改 Nginx 配置文件的规范流程

一 配置文件位置与结构

  • 主配置文件:/etc/nginx/nginx.conf
  • 站点配置:/etc/nginx/sites-available/(可用站点),/etc/nginx/sites-enabled/(已启用站点,通常为符号链接)
  • 其他常用目录:/etc/nginx/conf.d/(额外 server 配置)、/etc/nginx/snippets/(可复用片段)
  • 快速确认加载的配置与路径:执行sudo nginx -t,第一行会显示“configuration file /etc/nginx/nginx.conf”等实际加载信息。

二 标准修改步骤

  1. 备份当前配置(可选但强烈建议)
    • 例如:sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
  2. 编辑配置文件(以默认站点为例)
    • sudo nano /etc/nginx/sites-available/default(或编辑主配置:sudo nano /etc/nginx/nginx.conf
  3. 语法检查
    • sudo nginx -t
  4. 使配置生效
    • 平滑生效:sudo systemctl reload nginx
    • 或重启服务:sudo systemctl restart nginx
  5. 验证
    • 访问服务器 IP/域名:80,或在终端用 curl -I http://localhost 查看响应。

三 常见场景示例

  • 修改默认站点根目录
    • 在 server 块中调整 root 指令,例如:root /var/www/new_root;
    • 创建目录并设置权限:
      • sudo mkdir -p /var/www/new_root
      • sudo chown -R $USER:$USER /var/www/new_root
      • sudo chmod -R 755 /var/www/new_root
    • 检查并重载:sudo nginx -t && sudo systemctl reload nginx
  • 新增站点(基于 sites-available/sites-enabled)
    • 新建配置:sudo nano /etc/nginx/sites-available/example.com
    • 启用站点:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    • 检查并重载:sudo nginx -t && sudo systemctl reload nginx
  • 启用 HTTPS(示例片段)
    • 将证书放到例如 /etc/nginx/cert/,然后添加:
      • listen 443 ssl;
      • ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
      • ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.key;
      • ssl_protocols TLSv1.2 TLSv1.3;
    • 检查并重载:sudo nginx -t && sudo systemctl reload nginx

四 防火墙与权限要点

  • 若启用 ufw,放行 HTTP/HTTPS:
    • sudo ufw allow http
    • sudo ufw allow https
  • 目录与权限
    • 确保 root 指令指向的目录存在且 **Nginx 工作进程用户(常见为 www-data)**可读;必要时调整所有者/权限,例如:
      • sudo chown -R www-data:www-data /var/www/your_site
      • sudo find /var/www/your_site -type d -exec chmod 755 {} ;
      • sudo find /var/www/your_site -type f -exec chmod 644 {} ;

五 排错与验证

  • 配置语法:sudo nginx -t(定位行号与语法错误)
  • 服务状态:sudo systemctl status nginx(查看是否 active、是否报错)
  • 事件日志:sudo journalctl -u nginx -xe(查看最近错误与重载日志)
  • 访问验证:浏览器访问 http://服务器IP/curl -I http://localhost;启用 HTTPS 后用 https://域名 测试。

0