Nginx是大型架构核心,下面我详解Ngixn开发命令@mikechen
1. 查看Nginx版本
nginx -v
查看当前安装的 Nginx 版本:
nginx version: nginx/1.24.0
如果需要查看更加完整的编译参数,可以使用:
nginx -V
-V 除了版本号,还会显示:
- 编译器信息
- OpenSSL版本
- 编译参数
- 安装模块
- 配置路径
开发排查时,nginx -V 非常实用。
2. 检查Nginx配置
nginx -t
这是开发过程中最重要的命令之一。
例如修改了:
nginx.conf
不要直接重启,先执行:
nginx -t
正常情况下:
syntax is ok
test is successful
如果配置存在错误,则会提示具体文件和行号。
推荐操作
nginx -t && nginx -s reload
也就是:
配置检查通过 → 再重新加载配置
可以有效避免因为配置错误导致 Nginx 无法正常启动。
3. 启动Nginx
nginx
启动 Nginx。
如果 Nginx 没有使用默认配置文件,可以指定配置:
nginx -c /etc/nginx/nginx.conf
启动之后可以检查:
ps -ef | grep nginx
通常可以看到:
root nginx: master process
nginx nginx: worker process
nginx nginx: worker process
其中:
- Master Process:负责管理 Worker
- Worker Process:真正处理网络请求
4. 快速停止Nginx
nginx -s stop
该命令会立即停止 Nginx。
它属于快速停止,可能会直接终止正在处理的连接。
适合:
- 测试环境
- 快速关闭服务
- Nginx异常需要立即停止
生产环境一般更推荐使用优雅停止。
5. 优雅停止Nginx
nginx -s quit
quit 和 stop 最大区别在于:
stop → 快速停止
quit → 优雅停止
优雅停止会让 Nginx Worker 处理完当前请求后再退出。
因此生产环境中,如果需要停止 Nginx,通常更推荐:
nginx -s quit
6. 重新加载Nginx配置
nginx -s reload
这是 Nginx 日常开发中使用频率最高的命令之一。
例如修改了:
server {
listen 80;
server_name example.com;
}
修改完成后:
nginx -t
确认配置正确,再执行:
nginx -s reload
Nginx 会重新加载配置,而不是直接停止整个服务。
为什么 reload 很重要?
因为它可以实现:
不中断现有连接的配置更新
这也是 Nginx 实现高可用的重要机制之一。
7. 重新打开日志文件
nginx -s reopen
当 Nginx 日志需要进行切割时,可以使用:
nginx -s reopen
例如:
access.log
error.log
经过日志切割后,需要通知 Nginx重新打开日志文件。
典型场景:
Nginx
↓
日志文件
↓
logrotate
↓
日志切割
↓
nginx -s reopen
这样可以避免 Nginx 继续向旧日志文件写入数据。
8. 指定配置文件启动
nginx -c /etc/nginx/nginx.conf
-c 用于指定 Nginx 配置文件。
例如:
nginx -c /opt/nginx/conf/nginx.conf
这在以下场景非常有用:
- 多套 Nginx 配置
- 测试不同配置
- Docker环境
- 自定义安装目录
- 开发环境和生产环境配置隔离
9. 指定配置文件检查
nginx -t -c /etc/nginx/nginx.conf
可以针对指定配置文件进行检查。
例如:
nginx -t -c /opt/nginx/conf/nginx.conf
这比直接执行:
nginx -t
更加适合多实例 Nginx 场景。
10. 查看Nginx帮助
nginx -h
可以查看 Nginx 常用参数。
例如:
nginx -v
nginx -V
nginx -t
nginx -T
nginx -s signal
nginx -c filename
其中还有一个非常实用的参数:
nginx -T
它不仅检查配置,还会输出完整的 Nginx 配置内容。
当 Nginx 配置文件比较复杂、存在大量 include 时:
nginx -T
对于排查最终生效配置非常有价值。