1Panel 玩机指南 Logo
首页
🛸 探索全部
💡 1Panel 101
🐈‍⬛ GitHub 开源精选
📡 瞬时动态
👋 你好
登录 →
1Panel 玩机指南 Logo
首页 🛸 探索全部 💡 1Panel 101 🐈‍⬛ GitHub 开源精选 📡 瞬时动态 👋 你好
登录
  1. 首页
  2. 开源精选
  3. OpenResty 与 nginx 是什么关系?聊聊 1Panel 的 Web 服务层

OpenResty 与 nginx 是什么关系?聊聊 1Panel 的 Web 服务层

  • 开源精选
  • 发布于 2026-05-12
  • 54 次阅读
kai@lxaware
kai@lxaware
目录
当前文章没有目录

在 1Panel 里建站、配反向代理、申请 SSL 证书——这些操作大多数用户都做过。但很少有人注意到:这一切背后,实际上是同一个程序在处理所有的 HTTP 请求。它既不叫"1Panel Web 服务",也不是你在应用商店单独安装的东西,而是 OpenResty。

这篇文章从 Nginx 和 OpenResty 各自是什么讲起,厘清两者的关系,然后落脚到 1Panel 的实际使用场景。


Nginx

Nginx(读作 "engine-x")由 Igor Sysoev 开发,2004 年发布,以 2-clause BSD License 开源。它是一个 HTTP Web 服务器,同时也是反向代理、负载均衡器、TCP/UDP 代理和邮件代理服务器。

Nginx 能流行至今,核心原因是架构设计:事件驱动、非阻塞 I/O、Master-Worker 多进程模型。它不像早期的 Apache 那样为每个请求创建线程或进程,而是用少量 Worker 进程处理大量并发连接。官方数据显示,10,000 个空闲 HTTP keep-alive 连接只占用约 2.5MB 内存。

Nginx 的功能边界在于:它本身由 C 模块构成,扩展功能需要在编译时引入模块,运行时无法动态加载逻辑。


OpenResty

OpenResty® 由 章亦春(agentzh)发起,以 Nginx 为核心,嵌入 LuaJIT 和 ngx_lua 模块,并捆绑了大量 Lua 库与第三方 Nginx 模块。官方的定位是:

"让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。"

OpenResty 在官网上被称为"高性能 Web 平台",而不仅仅是 Web 服务器——这个措辞是有意的。


OpenResty 和 Nginx 的关系

OpenResty 是 Nginx 的超集。它包含完整的 Nginx 核心,在此之上增加了:

  • LuaJIT:Lua 的即时编译运行时,性能接近 C

  • ngx_lua 模块(现更名为 lua-Nginx-module):将 Lua 脚本嵌入 Nginx 的请求处理流程

  • 一批常用 Lua 库:lua-resty-redis、lua-resty-mysql、lua-resty-http 等

这意味着:Nginx 能做的,OpenResty 都能做;反过来不成立。

两者更本质的区别在于扩展方式:

Nginx

OpenResty

扩展方式

编译时引入 C 模块

运行时加载 Lua 脚本

修改逻辑

需要重新编译

修改 Lua 文件,reload 即可

可编程性

配置指令驱动

可在请求各阶段插入任意逻辑

Nginx 的请求处理流程分为多个阶段(rewrite、access、content、log 等),OpenResty 允许在每个阶段注入 Lua 代码。这让复杂的鉴权、限流、动态路由、WAF 规则等逻辑,都可以在 Nginx 进程内部完成,而不需要额外的后端服务。

OpenResty 请求处理阶段示意图:HTTP 请求依次经过 rewrite、access、content、log 四个阶段,每个阶段均支持 Lua 脚本注入,1Panel WAF 工作在 access 阶段完成请求拦截

在 1Panel 里,OpenResty 做了什么

1Panel 的 OpenResty 不是应用商店里的一个可选插件,而是 1Panel Web 服务层的核心组件。你在 1Panel 里看不到一个叫"Nginx"的应用,因为 OpenResty 已经是它的默认 Web 服务器方案,随 1Panel 部署而存在。

以下是 OpenResty 在 1Panel 日常使用中实际承担的工作:

建站:每个网站对应一个 server 块

在 1Panel 的"网站"模块新建一个站点时,1Panel 会在 OpenResty 的配置目录里生成对应的 server 块。界面上填写的域名、网站根目录、PHP 版本、访问日志路径等,都会转化为标准的 Nginx 配置语法写入这个文件。

本质上,1Panel 是在帮你管理 OpenResty 的配置文件——图形界面操作对应的是后台的配置生成与 reload 动作。

反向代理:把域名指向容器里的应用

这是最常见的用法。假设你用 Docker 跑了一个应用,监听在本机的某个端口,需要通过域名访问它。在 1Panel 里新建网站 → 选择"反向代理" → 填入目标地址,OpenResty 就会接管进入的 HTTP/HTTPS 请求并转发给这个应用。

反向代理是 Nginx / OpenResty 的核心能力之一,1Panel 通过图形界面将这个过程做到了几乎零配置。

HTTPS:证书申请与自动配置

1Panel 集成了 ACME 协议,可以自动向 Let's Encrypt 申请 SSL/TLS 证书,并将证书路径写入对应网站的 OpenResty 配置,启用 HTTPS。证书续期也由 1Panel 自动处理。

HTTP 到 HTTPS 的跳转(301 重定向)同样通过 OpenResty 的 return 指令实现。

伪静态 / URL 重写

WordPress、Halo 等 CMS 都需要配置伪静态规则,否则文章详情页会 404。1Panel 在网站配置中提供了"伪静态"选项,预置了常见 CMS 的 rewrite 规则模板,也支持手动填写自定义规则。这些规则最终写入 OpenResty 配置,由其 ngx_http_rewrite_module 执行。

WAF(专业版):Lua 脚本实现的 Web 防火墙

1Panel 专业版内置了 WAF(Web 应用防火墙),支持 SQL 注入、XSS、CC 攻击拦截、IP 黑白名单、访问频率限制等。这个 WAF 的底层实现,正是 OpenResty 的 Lua 脚本能力:在请求的 access 阶段,Lua 代码对请求内容进行检查,命中规则则直接拦截并返回错误响应,整个过程在 Nginx 进程内完成,不需要将请求转发到外部服务再判断。

社区版没有内置 WAF,如需防护需自行配置 OpenResty 规则或安装第三方方案(如 uuWAF)。

自定义配置

1Panel 的网站配置支持填写自定义 Nginx 配置片段,插入到对应 server 块的指定位置。对于需要精细控制缓存策略、请求头、连接超时等参数的场景,可以直接写 Nginx 指令,不受图形界面的限制。


总结:OpenResty 在 1Panel 中的定位

Nginx 是当今使用最广泛的 Web 服务器,以事件驱动架构和低资源占用著称。OpenResty 在 Nginx 的基础上嵌入了 LuaJIT,使其从"配置驱动"变为"可编程平台",在保持 Nginx 性能特性的同时,支持在请求处理流程的任意阶段注入 Lua 逻辑。

在 1Panel 中,OpenResty 不是一个可选组件,而是贯穿网站管理、反向代理、HTTPS、URL 重写、WAF 等核心功能的 Web 服务层。用户通过图形界面完成的大多数 Web 相关操作,最终都落实为 OpenResty 配置文件的生成与管理。


参考资料

  • OpenResty 官网:https://openresty.org/cn/

  • Nginx 官网:https://Nginx.org/en/

标签: #OpenResty 1 #1Panel 14
相关文章
OpenResty 与 nginx 是什么关系?聊聊 1Panel 的 Web 服务层

OpenResty 与 nginx 是什么关系?聊聊 1Panel 的 Web 服务层

在 1Panel 里建站、配反向代理、申请 SSL 证书——这些操作大多数用户都做过。但很少有人注意到:这一切背后,实际上是同一个程序在处理所有的 HTTP 请求。它既不叫"1Panel Web 服务",也不是你在应用商店单独安装的东西,而是 OpenResty。 这篇文章从 Nginx 和 Ope

目录
当前文章没有目录

1Panel 就是好玩儿~

  • 1Panel 开源站
  • 凌霞
  • Halo 开源站
Copyright © 2026 your company All Rights Reserved. Powered by Halo.
浙ICP备14038283号-5