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”等实际加载信息。
二 标准修改步骤
- 备份当前配置(可选但强烈建议)
- 例如:sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
- 编辑配置文件(以默认站点为例)
- sudo nano /etc/nginx/sites-available/default(或编辑主配置:sudo nano /etc/nginx/nginx.conf)
- 语法检查
- 使配置生效
- 平滑生效:sudo systemctl reload nginx
- 或重启服务:sudo systemctl restart nginx
- 验证
- 访问服务器 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://域名 测试。