Nginx速查
本文档整理了 Nginx*在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景。
Nginx 常用命令速查手册
本文档整理了 Nginx 在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景,适用于 CentOS、Ubuntu 等主流 Linux 发行版。
一、服务生命周期管理
1. 启动 Nginx
# 推荐:使用 systemd(现代 Linux 系统) sudo systemctl start nginx # 或直接调用二进制(不推荐用于生产) sudo nginx
💡 若提示
command not found,请先安装 Nginx:
sudo yum install nginx(CentOS)或sudo apt install nginx(Ubuntu)
2. 停止 Nginx
# 方式一:systemd 停止(发送 TERM 信号) sudo systemctl stop nginx # 方式二:快速停止(强制终止,可能丢请求) sudo nginx -s stop # 方式三:优雅停止(处理完当前请求再退出,推荐) sudo nginx -s quit
⚠️ 生产环境建议使用
nginx -s quit或systemctl stop,避免用户请求中断ty-reference。
3. 重启与重载配置
# 完全重启(先停后启,会短暂中断服务) sudo systemctl restart nginx # 重新加载配置(零停机,推荐!) sudo nginx -s reload # 或 sudo systemctl reload nginx
✅
reload是热更新配置的标准方式,不会断开现有连接ty-reference。
二、配置文件管理
1. 测试配置语法
# 检查默认配置是否正确 sudo nginx -t # 检查指定配置文件 sudo nginx -t -c /etc/nginx/custom.conf # 显示完整生效配置(含 include 内容) sudo nginx -T
📌 最佳实践:修改配置后务必先执行
nginx -t,再reloadty-reference。
2. 查看配置文件位置
# 方法一:通过编译参数查找 nginx -V 2>&1 | grep -o '\--conf-path=[^ ]*' | cut -d= -f2 # 方法二:常见路径 /etc/nginx/nginx.conf # 主配置文件 /etc/nginx/sites-enabled/ # 虚拟主机(Debian系) /etc/nginx/conf.d/ # 额外配置片段
三、状态与日志监控
1. 查看服务状态
sudo systemctl status nginx
输出包含:
- 是否运行中(Active: active (running))
- 主进程 PID
- 最近日志片段
2. 实时查看日志
# 访问日志(记录 HTTP 请求) sudo tail -f /var/log/nginx/access.log # 错误日志(排查 502/404 等问题) sudo tail -f /var/log/nginx/error.log
🔍 日志路径可通过
nginx.conf中的access_log和error_log指令自定义。
3. 清空日志(不停服务)
# 清空访问日志 sudo truncate -s 0 /var/log/nginx/access.log # 或配合 logrotate 手动切割 sudo mv /var/log/nginx/access.log /var/log/nginx/access.log.$(date +%Y%m%d) sudo nginx -s reopen # 通知 Nginx 重新打开日志文件
四、进程与版本信息
1. 查看 Nginx 进程
ps aux | grep nginx
典型输出:
root 1234 0.0 0.1 ... nginx: master process
www-data 5678 0.0 0.2 ... nginx: worker process
🧠 Nginx 采用 Master-Worker 架构:主进程管理,工作进程处理请求ty-reference。
2. 查看版本与编译信息
# 仅显示版本 nginx -v # 显示版本 + 编译参数(含模块列表) nginx -V
示例输出:
nginx version: nginx/1.24.0
built with OpenSSL 3.0.2 ...
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx ... --with-http_ssl_module ...
五、高级操作
1. 开机自启动
# 启用 sudo systemctl enable nginx # 禁用 sudo systemctl disable nginx
2. 信号控制(底层方式)
若知道主进程 PID(通常在 /run/nginx.pid):
# 重新加载配置(等效于 -s reload) kill -HUP $(cat /run/nginx.pid) # 优雅停止(等效于 -s quit) kill -QUIT $(cat /run/nginx.pid) # 重新打开日志(用于日志轮转) kill -USR1 $(cat /run/nginx.pid)
3. 端口占用排查
# 查看 80 端口占用 sudo ss -tulpn | grep ':80' # 或 sudo lsof -i :80
若端口被占用,可停止冲突进程或修改 Nginx 的
listen端口。
六、常见问题速查
| 问题 | 解决命令 |
|---|---|
| 修改配置后不生效? | nginx -t && nginx -s reload |
| 出现 502 Bad Gateway? | tail -f /var/log/nginx/error.log |
| 无法启动,提示 address already in use? | sudo fuser -k 80/tcp |
| 忘记配置文件在哪? | nginx -V 2>&1 | grep conf-path |
七、最佳实践总结
- 修改配置前必做:
nginx -t - 更新配置后必做:
nginx -s reload - 生产环境停止用:
nginx -s quit(非stop) - 日志定期轮转:配合
logrotate+nginx -s reopen - 不要用 root 运行:确保
user www-data;在配置中
📚 参考资料:
- Nginx 官方文档
- CSDN 技术社区多篇 Nginx 命令详解 ty-reference
✅ 本文档可直接保存为 nginx-cheatsheet.md,作为团队内部速查手册使用。
