一、前言
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
- 访问官方下载页:
👉 https://openresty.org/en/download.html - 在 “Pre-built packages for Windows” 部分,下载最新
.zip包(例如openresty-1.25.3.1-win64.zip) - 解压到一个固定目录,例如:
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
三、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
四、设置开机自启(Windows 服务方式)
方法一:使用 NSSM(推荐)
NSSM(Non-Sucking Service Manager)可将任意程序注册为 Windows 服务。
- 下载 NSSM:https://nssm.cc/download
- 解压后以管理员身份运行
nssm install openresty - 在弹出窗口中填写:
- Path:
C:\tools\openresty\nginx.exe - Startup directory:
C:\tools\openresty
- Path:
- 点击 “Install service”
- 启动服务:
net start openresty
方法二:使用任务计划程序(简单替代)
- 创建批处理文件
start_openresty.bat:
@echo off
cd /d C:\tools\openresty
nginx.exe
- 打开“任务计划程序” → 创建基本任务 → 触发器选“用户登录时” → 操作选“启动程序” → 选择该
.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/