Ken的杂谈
  • Ken的杂谈 (current)
  • 关于
  • 杂谈
    Java Spring Spring Boot Spring Cloud MyBatis C# .NET Core .NET ASP.NET Core ASP.NET ClassLibrary Mono 数据库 MySQL SQL Server 网络 缓存 Web Linux CentOS Ubuntu macOS Windows openEuler Nginx ServiceStack JS/JQ 正则 工具 IDE Grafana Exceptions CI/CD Solution 微服务 Arch Docker 杂谈
  • 系列
    Java 快速入门系列教程 Spring Boot 入门教程 Spring Boot 2.x 入门教程 Spring Cloud 入门教程 .NET Core 快速入门教程 ASP.NET Core 2.1 入门教程 CentOS 7 快速上手教程 Ubuntu快速上手入门教程 Hyper-V基础教程 Docker入门教程
  • GitHub

在Windows上安装配置OpenResty

Nginx Windows @ 2025-12-14 21:30:27 · 阅读:(12)

一、前言

OpenResty是一个基于 Nginx 与 Lua 的开源高性能 Web 平台,OpenResty团队为Nginx开发了Lua模块,使得开发者/运维可以使用Lua为OpenResty开发扩展,或者为Nginx定制功能,另外OpenResty团队也内置了很多Lua扩展(JWT、MySQL、Redis等),可以通过OpenResty高效率的开发高性能Web服务

1、本文主要内容

  • 安装 OpenResty(使用官方 Windows 预编译包)
  • 配置 HTTP 反向代理
  • 使用 Lua 响应 HTTP 请求
  • 设置开机自启(通过 Windows 服务或任务计划程序)
  • 常用命令说明

2、本文环境信息

工具/环境 版本说明
Windows 10 / 11(64位)
OpenResty 1.27.1.2

二、OpenResty 安装(Windows)

1. 下载 OpenResty for Windows

  1. 访问官方下载页:
    👉 https://openresty.org/en/download.html
  2. 在 “Pre-built packages for Windows” 部分,下载最新 .zip 包(例如 openresty-1.25.3.1-win64.zip)
  3. 解压到一个固定目录,例如:
C:\tools\openresty\

⚠️ 建议不要放在带空格或中文的路径中(如 Program Files),避免后续配置出错。

2. 验证&启动

打开 命令提示符(CMD) 或 PowerShell,进入 OpenResty 目录:

cd C:\tools\openresty

查看版本:

nginx.exe -v

预期输出:

nginx version: openresty/1.27.1.2
built by gcc 7.3.0 (Rev1, Built by MSYS2 project) 
built with OpenSSL 1.1.1w  11 Sep 2023
TLS SNI support enabled

注意:在 Windows 中,OpenResty 的主程序是 nginx.exe,而不是 openresty

启动 OpenResty:

# 创建所需的临时目录
mkdir temp

# 启动
start nginx.exe

浏览器访问:localhost

image.png

三、OpenResty 配置

默认配置文件位于:

C:\tools\openresty\conf\nginx.conf

1. 创建自定义配置目录

为了便于管理,我们创建自己的配置文件夹:

mkdir C:\tools\openresty\conf\myconf

编辑主配置文件 C:\tools\openresty\conf\nginx.conf,在 http { ... } 块内添加:

include "C:/tools/openresty/conf/myconf/*.conf";

📌 注意:Windows 路径需使用正斜杠 / 或双反斜杠 \\,推荐用 / 避免转义问题。且引用的路径使用”包裹

2. 配置 HTTP 反向代理(示例)

创建文件:C:\tools\openresty\conf\myconf\ken.conf

server {
    listen 80;
    server_name test.local.ken.io;

    location / {
        proxy_pass https://ken.io;
        proxy_set_header Host ken.io;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

修改 hosts 文件

以管理员身份运行记事本,打开:

C:\Windows\System32\drivers\etc\hosts

添加一行:

127.0.0.1 test.local.ken.io

保存后,测试:

curl http://test.local.ken.io

若未安装 curl,可直接在浏览器访问 http://test.local.ken.io

3. 使用 Lua 响应请求(监听 8888 端口)

创建文件:C:\tools\openresty\conf\myconf\hello.conf

server {
    listen 8888;
    location / {
        default_type 'text/plain';
        content_by_lua_block {
            local args = ngx.req.get_uri_args()
            local name = args["name"] or "OpenResty"
            ngx.header["X-Header"] = "ken.io"
            ngx.say("Hello, " .. name .. "!")
        }
    }
}

4. 重载配置

在 Windows 中,Nginx 不支持热重载(reload)信号,必须先停止再启动:

cd C:\tools\openresty
nginx.exe -s stop
nginx.exe

💡 小技巧:可以写一个批处理脚本 reload.bat:

@echo off
cd /d C:\tools\openresty
nginx.exe -s stop
timeout /t 1 /nobreak >nul
nginx.exe
echo OpenResty reloaded.

测试 Lua 接口:

curl http://localhost:8888?name=Ken

预期输出:

Hello, Ken!

使用浏览器访问:http://localhost:8888/?name=Ken

image.png

四、设置开机自启(Windows 服务方式)

方法一:使用 NSSM(推荐)

NSSM(Non-Sucking Service Manager)可将任意程序注册为 Windows 服务。

  1. 下载 NSSM:https://nssm.cc/download
  2. 解压后以管理员身份运行 nssm install openresty
  3. 在弹出窗口中填写:
    • Path: C:\tools\openresty\nginx.exe
    • Startup directory: C:\tools\openresty
  4. 点击 “Install service”
  5. 启动服务:
net start openresty

方法二:使用任务计划程序(简单替代)

  1. 创建批处理文件 start_openresty.bat:
@echo off
cd /d C:\tools\openresty
nginx.exe
  1. 打开“任务计划程序” → 创建基本任务 → 触发器选“用户登录时” → 操作选“启动程序” → 选择该 .bat 文件。

五、备注

1、OpenResty常用命令(Windows 版)

功能 命令(在 C:\tools\openresty 目录下执行)
启动 OpenResty nginx.exe
停止 OpenResty nginx.exe -s stop
优雅关闭 nginx.exe -s quit
重载配置(需手动重启) 先 stop 再 nginx.exe
测试配置是否正确 nginx.exe -t
查看版本 nginx.exe -v
指定配置文件启动 nginx.exe -c C:\ken.io\openresty\conf\nginx.conf

2、注意事项

  • Windows 版 OpenResty 不支持 daemon off;,它默认以守护进程方式运行。
  • 日志文件默认在 C:\tools\openresty\logs\(access.log / error.log)
  • 如遇端口占用,检查 80 或 8888 是否被 IIS、Skype 等占用。
  • 开发调试时建议关闭 Windows Defender 防火墙临时测试,或放行对应端口。

3、引用/参考

  • 官网:https://openresty.org/cn/
  • Windows 下载:https://openresty.org/en/download.html
  • NSSM 服务工具:https://nssm.cc/

Ken的杂谈

本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。

Nginx Windows

随笔目录


    © Copyright 2012-2025 Ken的杂谈

    豫ICP备10025012号-1

    ASP.NET Core(6.0) on Linux