0%

Nginx常用命令

Nginx 常用命令详解:从基础操作到高级管理

Nginx 的命令行工具是管理服务的核心入口,掌握常用命令能高效处理启动、配置验证、重载等操作。本文系统整理 Nginx 的关键命令,包括基础操作、配置管理、日志控制等,附带使用场景和注意事项。

版本与配置信息查询

通过以下命令查看 Nginx 版本及编译配置,帮助确认环境信息或排查兼容性问题。

命令 功能描述 示例
nginx -v 显示 Nginx 版本(仅版本号) shell # 输出示例:nginx version: nginx/1.24.0 nginx -v
nginx -V 显示完整版本信息,包括编译器版本和编译时配置参数(如启用的模块、安装路径等) shell # 输出示例包含编译参数:nginx version: nginx/1.24.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) ... --with-http_ssl_module --prefix=/usr/local/nginx nginx -V

服务启动与停止

控制 Nginx 服务的启动、停止是最基础的操作,需根据场景选择不同的停止方式。

1. 启动 Nginx

1
2
3
4
5
# 使用默认配置文件启动(默认路径:安装目录/conf/nginx.conf)
nginx

# 指定配置文件启动(适用于多配置文件场景)
nginx -c /path/to/your/nginx.conf
  • 注意:启动前需确保端口未被占用(如 80、443),否则会报错 “address already in use”。

2. 停止 Nginx

Nginx 提供两种停止方式,区别在于是否优雅处理当前请求:

  • 快速停止(强制终止)

    1
    nginx -s stop

    直接终止所有 Nginx 进程,不等待当前请求处理完成,适合紧急情况。

  • 优雅停止(安全退出)

    1
    nginx -s quit

    通知主进程等待 worker 进程处理完当前请求后再退出,避免请求中断,推荐生产环境使用。

配置文件验证与重载

修改配置文件后,需先验证语法正确性,再重载配置使变更生效,避免服务中断。

1. 验证配置文件

1
2
3
4
5
# 验证默认配置文件的语法正确性
nginx -t

# 验证指定配置文件
nginx -t -c /path/to/your/nginx.conf
  • 若配置正确,输出:nginx: the configuration file /path/to/nginx.conf syntax is oknginx: configuration file /path/to/nginx.conf test is successful
  • 若存在错误(如语法错误、路径不存在),会提示具体错误位置,需修复后再操作。

2. 重载配置文件

修改配置后无需重启服务,通过重载使变更生效:

1
nginx -s reload
  • 原理:主进程检查新配置语法,若正确则启动新的 worker 进程处理请求,同时优雅关闭旧 worker 进程;
  • 优势:避免服务中断,适合生产环境动态调整配置(如修改虚拟主机、添加路由规则)。

日志管理

Nginx 的访问日志和错误日志是排查问题的重要依据,可通过命令控制日志文件的轮转。

1. 重新打开日志文件

当日志文件达到一定大小(如按日切割),需通知 Nginx 重新生成新日志文件:

1
nginx -s reopen
  • 用途:配合日志切割工具(如 logrotate)使用,避免日志文件过大难以管理;
  • 示例:切割旧日志后,执行nginx -s reopen,Nginx 会自动创建新的日志文件继续写入。

其他实用命令

1. 查看 Nginx 进程

虽然不是 Nginx 自带命令,但结合psnetstat可查看服务运行状态:

1
2
3
4
5
# 查看Nginx进程
ps -ef | grep nginx

# 查看Nginx占用的端口
netstat -tlnp | grep nginx

2. 强制终止所有 Nginx 进程

nginx -s stop/quit无法停止服务(如进程僵死),可手动杀死进程:

1
2
3
4
# 杀死所有Nginx进程
pkill nginx
# 或通过进程ID强制终止
kill -9 $(ps -ef | grep nginx | grep -v grep | awk '{print $2}')
  • 注意:此方式可能导致请求丢失,仅在紧急情况下使用。

命令使用场景总结

场景 推荐命令
首次启动服务 nginx
修改配置后生效 nginx -t(验证) → nginx -s reload(重载)
安全关闭服务 nginx -s quit
紧急终止服务 nginx -s stoppkill nginx
切割日志后重建日志文件 nginx -s reopen
确认安装模块或版本 nginx -V

欢迎关注我的其它发布渠道