如何构建支持 ngx_http_lua_module 的 ARM64 架构 Nginx Dockerfile?

摘要:一、📘 背景 ngx_http_lua_module 是 OpenResty 的核心模块之一,使 Nginx 可以直接执行 Lua 脚本,实现灵活的动态逻辑处理,例如: 动态负载均衡 请求内容过滤 动态缓存控
一、📘 背景 ngx_http_lua_module 是 OpenResty 的核心模块之一,使 Nginx 可以直接执行 Lua 脚本,实现灵活的动态逻辑处理,例如: 动态负载均衡 请求内容过滤 动态缓存控制 自定义鉴权逻辑 官方的 Nginx 镜像默认 不包含 Lua 支持,因此需要通过编译源码的方式添加。 二、🧩 编译所需组件 编译时需要以下依赖: 依赖包 说明 build-essential 基础编译工具(gcc、make 等) libpcre3 / libpcre3-dev Nginx 正则匹配模块依赖 zlib1g / zlib1g-dev Nginx 压缩模块依赖 openssl / libssl-dev HTTPS 支持 wget / git 下载源码 gettext-base 提供 envsubst 命令用于模板变量替换 额外依赖组件: 组件 说明 LuaJIT 高性能 Lua 虚拟机,Nginx 的 Lua 模块依赖它 lua-nginx-module Nginx 与 LuaJIT 的集成模块 lua-resty-core / lua-resty-lrucache OpenResty 常用 Lua 库(必须安装,否则报 “resty.core not found”) 三、🛠️ Dockerfile 分为两阶段 第一阶段:编译(builder) 第二阶段:运行时(runtime) ✅ 第一阶段:编译阶段(builder) 目标:在 arm64v8/ubuntu:22.04 上编译 Nginx + Lua 模块。
阅读全文