Nginx是大型架构核心,下面我详解Nginx命令@mikechen
一、基础服务控制命令(最重要)
1. 启动 Nginx
nginx
或:
systemctl start nginx
作用:启动 Nginx 主进程(master + worker)
2. 停止 Nginx(立即停止)
nginx -s stop
特点:直接杀 worker 进程(可能丢请求)
3. 优雅停止 Nginx(推荐)
nginx -s quit
特点:
- 等当前请求处理完再退出
- 更安全(生产推荐)
4. 重启 Nginx
systemctl restart nginx
等价于:
- stop + start
二、平滑重载(高频面试重点)
5. 平滑重载配置(最常用)
nginx -s reload
核心机制:
- 不停止服务
- worker 进程平滑切换
- 零宕机更新配置
👉 生产环境最重要命令之一
6. 重新打开日志文件
nginx -s reopen
用途:
- 日志切割(logrotate)
- 避免日志丢失
三、配置检查类命令
7. 检查配置语法
nginx -t
输出示例:
nginx: configuration file /etc/nginx/nginx.conf test is successful
8. 指定配置文件检查
nginx -t -c /etc/nginx/nginx.conf
用途:
- 多环境配置验证
9. 查看 Nginx 编译参数
nginx -V
包含:
- 编译模块
- 路径信息
- 版本信息
👉 面试常问:判断是否支持 gzip / ssl / http2
四、进程管理类
10. 查看 Nginx 进程
ps -ef | grep nginx
典型结构:
- master process
- worker process
11. 查看 master PID
cat /run/nginx.pid
或:
cat /var/run/nginx.pid
12. 手动杀进程(慎用)
kill -9 <pid>
不推荐原因:
- 可能导致连接中断
- 不优雅关闭
五、日志查看类(排错核心)
13. 实时访问日志
tail -f /var/log/nginx/access.log
14. 实时错误日志
tail -f /var/log/nginx/error.log
15. 过滤错误日志
grep "error" /var/log/nginx/error.log
六、状态与性能相关
16. 查看连接状态(stub_status)
如果开启了:
location /nginx_status {
stub_status;
}
访问:
curl http://localhost/nginx_status
输出类似:
Active connections: 120
server accepts handled requests
10000 10000 30000
Reading: 2 Writing: 10 Waiting: 108
七、16个命令总结表
| 分类 | 命令 |
|---|---|
| 启动 | nginx |
| 停止 | nginx -s stop |
| 优雅停止 | nginx -s quit |
| 重启 | systemctl restart nginx |
| 重载配置 | nginx -s reload |
| 重新打开日志 | nginx -s reopen |
| 配置检查 | nginx -t |
| 指定配置检查 | nginx -t -c file |
| 版本信息 | nginx -V |
| 查看进程 | ps -ef | grep nginx |
| PID查看 | cat nginx.pid |
| 杀进程 | kill -9 pid |
| access日志 | tail -f access.log |
| error日志 | tail -f error.log |
| 错误过滤 | grep error |
| 状态监控 | stub_status |