当前位置: 首页 > news >正文

Windows版Nginx常用命令

下面完全针对 Windows 版 Nginx(官方 zip 包,解压即用)讲解,假设你把它解压到
C:\nginx(路径随意,下文用 %NGINX_HOME% 指代)。


一、启动 Nginx(3 种常见办法)

  1. 双击图标(最简单,但看不到日志)
    进入 %NGINX_HOME%,双击 nginx.exe,黑框一闪即退,
    实际上已后台运行。
    浏览器访问 http://127.0.0.1 出现 “Welcome to nginx!” 即成功。

  2. 命令行启动(推荐,能看到报错)

    打开 管理员 CMD 或 PowerShell

    cd C:\nginx
    start nginx # 不带参数,后台守护进程

    nginx # 会占住当前窗口,Ctrl+C 即停(调试时方便)

  3. 注册成 Windows 服务(开机自启,生产常用)
    用 “WinSW” 或 “NSSM” 把 nginx.exe 包一层即可,
    例如 NSSM 一条命令:
    nssm install nginx “C:\nginx\nginx.exe”


二、关闭 Nginx(对应 3 种启动方式)

  1. 任务管理器图形关
    进程名 nginx.exe,通常有两条:一条 master,一条或多条 worker,
    全选 → 结束任务。

  2. 命令行优雅关 / 快速关

    优雅(等待连接处理完)

    nginx -s quit # 必须在 原目录 下执行,否则找不到 pid

    立即

    nginx -s stop # 发 Terminate 信号
    如果以上提示 “找不到 logs/nginx.pid”,就手动杀:
    taskkill /f /im nginx.exe

  3. 服务方式
    net stop nginx # 假设你刚才注册的服务名就是 nginx
    sc delete nginx # 彻底卸载服务


三、Windows 下最常用的 Nginx 命令

检查配置文件写得对不对(改完 conf 必做)

nginx -t

重载配置(热更,不断连接)

nginx -s reload

重新打开日志文件(日志切割后用)

nginx -s reopen

指定配置文件启动(调试多实例时)

nginx -c C:\nginx\conf\nginx.conf

查看版本 / 编译参数

nginx -v
nginx -V

帮助

nginx -h


四、路径 / 权限易错点

  1. 必须在 含有 nginx.exe 的目录 执行
    否则 nginx -s reload 会报
    “could not open error log file: CreateFile() … failed”

  2. 80/443 端口占用
    通常是被 IIS、SQL Server Reporting、Skype 抢掉。
    解决:
    netstat -ano | findstr :80
    taskkill /PID <占用PID> /F
    或把 listen 改成 8080 等高端口。

  3. 防火墙弹窗
    首次启动 Windows Defender 会提示 “是否允许 nginx 通信”,点“允许”。

  4. 中文路径 / 空格
    解压路径不要带空格或中文,否则 nginx -t 可能异常。


五、一条完整日常流程(记忆版)

  1. 改配置
    用 VS Code 打开 C:\nginx\conf\nginx.conf 编辑。

  2. 检查
    nginx -t # 出现 “successful” 才继续。

  3. 热加载
    nginx -s reload # 不断服务更新。

  4. 想停服
    nginx -s quit # 优雅关。

  5. 万一卡死
    taskkill /f /im nginx.exe # 强制清场。


六、快速查询表(复制即可用)

操作命令
启动start nginx 或 nginx
停止nginx -s quit(优雅)/ nginx -s stop(强制)
重载配置nginx -s reload
验证配置nginx -t
重新打开日志nginx -s reopen
查版本nginx -V
杀进程taskkill /f /im nginx.exe

把上面 7 句记住,Windows 下使用 Nginx 就够用了。

-s是什么,为什么要-s

-snginx 在 Windows/Linux 上共有的“信号(signal)”参数,用来 向“正在运行的 nginx 主进程”发命令,而不是再启一个新进程。
没有 -s 时,你敲 nginx 会尝试 重新启动一个 master,这显然关不掉、也重载不了旧进程,所以必须靠 -s


  1. 语法
nginx -s <signal>

signal 只能取 4 个值:
stop | quit | reload | reopen


  1. 四个信号分别干什么
信号作用对应 Unix 信号
-s stop立即终止 主进程及其所有 worker(相当于 kill -TERM)SIGTERM
-s quit优雅退出——等现有连接处理完再关机SIGQUIT
-s reload热重载配置——不丢连接、不重启 worker,只重新加载 nginx.confSIGHUP
-s reopen重新打开日志文件(日志切割后用)SIGUSR1

  1. 为什么“必须”带 -s
  • 不带 -s 时,nginx 认为你要 “启动” 一个新实例;
  • -s 时,nginx 会读取 logs/nginx.pid 里的 PID,把对应信号发给 那个已经运行的 master 进程,自己立即退出,不占用新端口。
    换句话说:
    “-s 让 nginx 变成‘遥控器’,而不是‘新实例’。”

  1. Windows 上同样适用

虽然 Windows 没有 Unix 信号机制,但 nginx.exe 内部用 命名事件/线程通信 模拟了这四条命令,用法完全一致:

nginx -s stop      # 关
nginx -s reload    # 热更

一句话记住
“想控制已运行的 nginx,就加 -s;不加 -s 就是重新启动。”

http://www.dtcms.com/a/553452.html

相关文章:

  • 慈溪做网站哪家好网业设计与制作
  • 外设模块学习(11)——火焰传感器、光敏电阻传感器(STM32)
  • 笨鸟网站开发江苏seo平台
  • WPF检测网络状态切换
  • ✨WPF编程进阶【6.1】:图形原则(附源码)
  • 网站建设企业建站哪家好?来这里看看网站建设时间进度表模板
  • 无锡地区做网站赣州快车微信公众号
  • Vue3的异步DOM更新:nextTick的正确使用方法
  • Vue 项目中全局样式的正确写法:不要把字体和主题写在 #app 上
  • 网站推广策划的策略凡科做的网站百度能收录吗
  • 如何用SQL进行多表联查(JOIN)?
  • 笔试强训:Week-3
  • 网站建设公司的前景怎么建立和设计公司网站
  • 【项目实战1 -瑞吉外卖|day21 】
  • 变分自编码器(VAE):用概率解锁生成式AI的“基因密码”
  • C++ 容器入门:从初始化到常用操作全解析
  • 飞致云开源社区月度动态报告(2025年10月)
  • 企业网站建设的步骤网站维护包括哪些
  • 网站建设缺乏个性网站如何优化关键词
  • GNN变体
  • SpringMVC基础入门
  • XiangJsonCraft v1.1.0发布:JSON配置网页的终极进化,支持所有CSS选择器!
  • UVa 12670 Counting Ones
  • C++17(新特性)
  • 韩国风网站什么网站有做册子版
  • day58-Shell编程(第四部分)
  • 用AI写了一个文档拼音标注工具 中文+拼音一键生成
  • 做网站还有意义同样是div 怎么有些网站收录少 有些多
  • 企必搜做网站做国际物流在哪些网站找客户
  • 移动端适配完全指南:从基础到最佳实践