找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2189

积分

0

好友

306

主题
发表于 3 天前 | 查看: 7| 回复: 0

Nginx作为现代应用架构中的核心组件,熟练掌握其管理命令是每位开发者和运维人员的必修课。本文将系统梳理Nginx从日常操作到深度排障的常用命令,助你高效驾驭Nginx。

一、Nginx 启停与重载(最常用)

1. 启动 Nginx

nginx

使用默认配置文件(通常为 /etc/nginx/nginx.conf)启动服务。

2. 指定配置文件启动

nginx -c /etc/nginx/nginx.conf

在多环境配置(如测试、生产环境配置分离)的场景下非常实用。

3. 停止 Nginx(快速停止)

nginx -s stop

该命令会立即终止Nginx进程,不等待正在处理的请求完成,因此不推荐在生产环境直接使用

4. 优雅停止 Nginx

nginx -s quit

Nginx会等待所有当前正在处理的请求完成后才退出,这是生产环境推荐的停止方式

5. 重载配置(不停机热更新)

nginx -s reload

修改配置文件后,必须使用此命令才能使新配置生效。它会平滑重启Worker进程,不会中断已有的连接。

6. 重新打开日志文件

nginx -s reopen

在进行日志切割(例如配合 logrotate 工具)后,需要使用此命令通知Nginx重新打开日志文件。

二、配置文件检查(高频救命命令)

7. 检查配置语法是否正确

nginx -t

在执行 reload 或重启服务前,这绝对是必须进行的动作,可以有效避免因配置错误导致服务不可用。

8. 检查指定配置文件的语法

nginx -t -c /etc/nginx/nginx.conf

9. 显示完整配置内容

nginx -T

此命令不仅会检查语法,还会输出Nginx实际加载的完整配置内容,包括所有 include 进来的文件,便于调试。

三、进程与状态管理

10. 查看 Nginx 进程

ps -ef | grep nginx

11. 查看 Nginx 监听的端口

netstat -lntp | grep nginx

或者使用更现代的 ss 命令:

ss -lntp | grep nginx

12. 区分查看 Master 与 Worker 进程

ps aux | grep 'nginx:'

13. 查看 Nginx 主进程 PID

cat /var/run/nginx.pid

四、日志相关命令(排障核心)

日志分析是Nginx故障排查的核心环节。

14. 实时查看访问日志

tail -f /var/log/nginx/access.log

15. 实时查看错误日志

tail -f /var/log/nginx/error.log

16. 统计访问最频繁的 IP 地址

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

这个命令能快速帮你定位疑似恶意的攻击源IP。

17. 按 HTTP 状态码统计请求

awk '{print $9}' access.log | sort | uniq -c

用于快速了解请求的成功率(如200状态码的数量)和错误分布(如404、500状态码的数量)。

五、版本与编译参数

18. 查看 Nginx 版本

nginx -v

19. 查看详细版本及编译参数

nginx -V

当你需要确认Nginx是否编译了特定模块(例如 --with-http_ssl_module)时,这个命令至关重要。

六、配置与路径定位

20. 查找 nginx.conf 主配置文件路径

nginx -V 2>&1 | grep conf

21. 查找 Nginx 相关的所有文件路径

whereis nginx

22. 查找 Nginx 可执行文件路径

which nginx

七、性能与连接排查

23. 查看系统当前总体连接统计

ss -s

24. 统计 TIME_WAIT 状态的连接数

ss -ant | grep TIME-WAIT | wc -l

过多的TIME_WAIT可能影响端口复用,这个命令有助于发现潜在问题。

25. 查看特定端口(如80)的连接数

ss -ant | grep :80 | wc -l

八、调试与问题定位

26. 前台运行模式(用于调试)

nginx -g "daemon off;"

在Docker容器环境中运行Nginx时,这是标准做法,可以让日志输出到控制台。

27. 生产环境标准重载流程

nginx -t && nginx -s reload

先测试配置语法,无误后再重载,这是严谨的运维操作习惯。

28. 强制杀死 Nginx 进程(最后手段)

kill -9 <pid>

仅当Nginx进程异常卡死,无法响应 stopquit 信号时使用。

29. 重启 Nginx(谨慎使用)

nginx -s stop && nginx

相比 reload,此命令会造成服务短暂中断,需谨慎评估业务影响后使用。


掌握这些命令,意味着你具备了高效管理和快速排障Nginx服务的基本能力。如果你想深入探讨更多关于系统架构或Web服务器的实战经验,欢迎到 云栈社区 与更多开发者交流。




上一篇:Linux initramfs机制详解:构建、加载、切换根的全流程剖析
下一篇:Obsidian配置详解:从Typora迁移到自定义图片管理与知识库搭建
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-14 18:54 , Processed in 0.447235 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表