Ubuntu 下编辑 Nginx 配置文件的实用步骤
一 常用配置路径与定位
- 主配置文件:/etc/nginx/nginx.conf
- 站点配置目录:/etc/nginx/sites-available(存放可用站点配置)
- 已启用站点目录:/etc/nginx/sites-enabled(通过符号链接启用站点)
- 其他可用配置目录:/etc/nginx/conf.d/*.conf
- 日志目录:/var/log/nginx/access.log、/var/log/nginx/error.log
- 快速确认正在使用的配置路径与语法:执行 sudo nginx -t,输出会显示配置文件路径与是否通过语法检查。
二 使用命令行编辑器修改
- 选择编辑器(二选一或自选):nano(简单)或 vim(进阶)
- 备份默认站点配置(可选但推荐):
- sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
- 编辑默认站点配置:
- sudo nano /etc/nginx/sites-available/default
- 或 sudo vim /etc/nginx/sites-available/default
- 编辑完成后保存退出,继续下一步语法检查与服务重载。
三 创建新的站点配置并启用
- 新建站点配置(示例域名为 example.com):
- 启用站点(创建符号链接):
- sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- 如启用了大量域名出现哈希冲突提示,可在 /etc/nginx/nginx.conf 的 http { … } 内设置:
- server_names_hash_bucket_size 64;(去掉注释或按需调整)
四 检查语法并让配置生效
- 语法检查(修改后务必执行):
- 使配置生效(不中断现有连接的热加载):
- sudo systemctl reload nginx
- 如需重启服务(会短暂中断):
- sudo systemctl restart nginx
- 常用服务管理:
- 启动:sudo systemctl start nginx
- 停止:sudo systemctl stop nginx
- 开机自启:sudo systemctl enable nginx
- 禁止开机自启:sudo systemctl disable nginx
五 防火墙与 SSL 可选配置
- 防火墙放行 HTTP/HTTPS(UFW):
- sudo ufw allow ‘Nginx Full’
- 申请并自动配置 Let’s Encrypt 免费证书(Certbot):
- sudo apt install certbot python3-certbot-nginx
- sudo certbot --nginx -d example.com -d www.example.com
- 按提示选择是否重定向 HTTP 到 HTTPS。
六 常见问题与排查
- 配置不生效或端口占用:检查 sudo nginx -t 输出与 sudo systemctl status nginx 状态
- 查看错误日志定位问题:
- sudo tail -f /var/log/nginx/error.log
- 配置文件路径不确定:使用 sudo nginx -t、ps aux | grep nginx、systemctl cat nginx.service 或 nginx -V 2>&1 | grep “configure arguments” 查看实际加载的配置路径。