OpenResty 生产镜像 · Ubuntu/Alpine/CentOS · amd64+arm64 · GeoIP2+Brotli+HTTP/3
7.9K
由 Manta [email protected] 维护的 OpenResty / Lua 镜像。源码与构建矩阵:docker-nginx。
latest 对应 benyoo/openresty:alpine3.24-stable-1.31.1.1-20261028。稳定版 1.31.1.1 含固定的 13 项核心安全回补。1.31.8.1 为开发快照,固定源码 101a3ff13f50,使用独立 mainline 通道标签,不作为 latest。
本批使用正式 Dockerfile 增量构建并发布 20261028 新日期标签,包含配置变更事件合并功能。旧 20261026 精确标签保留;移动别名随本次发布更新。各系统的 <系统>-stable / <系统>-mainline 指向对应通道,产品 stable / mainline 指向对应 Alpine 变体。
| 精确标签 | 架构 |
|---|---|
ubuntu24.04-mainline-1.31.8.1-20261028 | amd64 |
rocky9-mainline-1.31.8.1-20261028 | amd64 / arm64 |
centos9-stream-mainline-1.31.8.1-20261028 | amd64 / arm64 |
alpine3.24-mainline-1.31.8.1-20261028 | amd64 / arm64 |
ubuntu24.04-stable-1.31.1.1-20261028 | amd64 |
rocky9-stable-1.31.1.1-20261028 | amd64 / arm64 |
centos9-stream-stable-1.31.1.1-20261028 | amd64 / arm64 |
alpine3.24-stable-1.31.1.1-20261028 | amd64 / arm64 |
| 系统 | 自有基础镜像 | 支持架构 |
|---|---|---|
| Alpine 3.24 | benyoo/alpine:3.24.20260615 | amd64 / arm64 |
| CentOS Stream 9 | benyoo/centos:9-stream-20260615 | amd64 / arm64 |
| Rocky Linux 9 | benyoo/rockylinux:9-20260615 | amd64 / arm64 |
| Ubuntu 24.04 | benyoo/ubuntu:24.04-20250807 | 仅 amd64 |
基础镜像、源码、插件与补丁均锁定摘要。OpenSSL 为 3.5.9;包含 HTTP/2、HTTP/3 / QUIC、Stream、Brotli、GeoIP 模块及动态 subs_filter。OpenResty 提供 Lua / JWT / Session / OIDC 等生态;纯 NGINX 不支持 Lua 配置。默认不打包 IP 数据库或下载凭据,GeoIP 数据通过 /usr/local/geoip 挂载;/data/geoip 保留兼容路径。
docker run -d --name openresty --restart always \
-p 80:80 -p 443:443 -p 443:443/udp -p 40080:40080 \
-e TIMEZONE=Asia/Shanghai -e LOG_RETENTION_DAYS=10 \
-v /data/wwwroot:/data/wwwroot \
-v /data/wwwlogs:/data/wwwlogs \
-v /data/dstw-runtime/openresty:/data/dstw-runtime \
benyoo/openresty:alpine3.24-stable-1.31.1.1-20261028
自有 NGINX 配置挂载到 /usr/local/nginx/conf,并设置 DEFAULT_CONF=disable;OpenResty 也保留这一业务路径。升级前使用候选镜像对实际配置执行 nginx -t;TLS 旧弱密钥和签名可能不符合 OpenSSL 3.5 安全要求,需先检查证书。
默认 80 与 40080 根路径使用内置静态首页。未传短码时仅初始化空业务目录;启用 DSTW_DEFAULT_INDEX=enable 并传入 DSTW_DEFAULT_INDEX_LABEL=110-35 后,主卡片中部显示一处短码,并先备份、再原子覆盖目标 HTML。DSTW_DEFAULT_INDEX_FILE 可指定目标,默认 /data/wwwroot/index.html。已有文件的内容 SHA、属主、权限和时间保存到 /data/dstw-runtime/default-index/backups;备份失败即停止覆盖,重复生成相同内容不重复备份。
默认首页发送 no-store/Pragma/Expires 防缓存响应,关闭 ETag、条件 304 与文件缓存。持久化 /data/dstw-runtime 保留备份;备份不按日志天数自动删除。自有 vhost 需显式接入默认页 snippet,上游 CDN 也须遵守源站响应头。多节点使用共享业务存储时,带不同短码的生成页须使用各节点独立路径,避免相互覆盖。HTTP/3 仍需要业务 QUIC 配置及 UDP 443 放通。
NGINX_RELOAD_QUIET_SECONDS 默认 2 秒,NGINX_RELOAD_MAX_WAIT_SECONDS 默认 30 秒。首个配置事件后持续收集变化,静默达到阈值或累计等待用尽后只校验并重载一次。两个参数均为无前导零的正整数秒(1~2147483647);最长等待不包括 nginx -t 与发送信号的执行时间。
校验失败不发送 HUP,保留服务并输出中文提示。原监听事件和隐藏路径排除规则不变;Ubuntu 自动使用已有 Bash,Alpine 无 Bash 时使用 BusyBox ash。Supervisor 的 autorestart=true 保证监听进程意外退出后重新启动。环境变量修改后需按原持久化挂载重新创建容器。
| 系统 | 当前实际层数 |
|---|---|
| Alpine 3.24 | 9 |
| CentOS Stream 9 | 6 |
| Rocky Linux 9 | 6 |
| Ubuntu 24.04 | 8 |
stable/mainline 各支持架构一致。保留运行模块、Lua/Vim/许可证(按产品提供)、原生 logrotate、健康检查及入口配置;压层不代表压缩体积按比例下降。
LOG_RETENTION_DAYS 调整,归档延迟一轮压缩。/data/dstw-runtime,保存 cron 任务及维护状态;不同产品/系统使用独立宿主目录。通过 cronctl list/add/remove/reload 管理任务。/health。json-file 配置。docker exec openresty nginx -t
docker exec openresty cronctl list
docker inspect --format '{{json .State.Health}}' openresty
curl -fsS http://127.0.0.1/health
本批 16 个系统/版本候选(28 个平台)完成正式 Dockerfile 增量构建、48 组配置监听验证、隔离业务兼容、旧日志迁移、删除重建后的任务持久化、日轮转、健康检查及中文状态恢复验收。arm64 在构建节点使用 QEMU 验证,未替代真机或实际生产配置验收。发布时逐版核验远端 digest、平台与拉取运行;完整记录见源码仓库 docs。未传短码时升级不强制覆盖已有业务首页;显式启用并传码时按前述备份覆盖规则执行。发布不会自动替换生产容器。
使用文档 · 安全与更新。项目未声明统一再许可;NGINX、OpenResty 及各第三方组件遵循各自原始许可证和版权声明。
Content type
Image
Digest
sha256:1a6da0c0f…
Size
85.6 MB
Last updated
8 days ago
docker pull benyoo/openresty