openresty 增加 GeoIP2、 开源waf组件、nginx-module-vts模块
749
本镜像基于 OpenResty 构建,集成了 GeoIP2 地理位置识别、开源 WAF 组件以及流量监控模块,适用于构建高性能、高安全性的 Web 服务。
| 组件/特性 | 版本/说明 | 备注 |
|---|---|---|
| OpenResty | latest 标签为 1.31.1.1 | 其他标签版本与 OpenResty 版本号一致 |
| GeoIP2 数据库 | 更新至 2026/06/07 | 数据库来源:MaxMind |
| 监控模块 | nginx-module-vts | 模块来源:nginx-module-vts,仅 1.27.1.2 及以上标签包含此模块 |
| WAF 组件 | 开源 WAF | 组件来源:unixhot/waf |
模块功能说明:
/usr/local/openresty/nginx/geo2_db,包含 GeoLite2-City.mmdb 和 GeoLite2-Country.mmdb。建议在运行容器时,将以下目录挂载到宿主机以持久化数据和配置:
| 目录类型 | 容器内路径 | 说明 |
|---|---|---|
| 日志目录 | /usr/local/openresty/nginx/logs | OpenResty 及 WAF 日志存储位置 |
| 主配置文件 | /usr/local/openresty/nginx/conf/nginx.conf | Nginx 主配置文件 |
| 7层代理配置 | /usr/local/openresty/nginx/conf/conf.d | 存放 HTTP/HTTPS 服务配置 |
| 4层代理配置 | /usr/local/openresty/nginx/conf/tcp_udp_proxy | 存放 TCP/UDP 代理配置 |
| SSL 证书 | /usr/local/openresty/nginx/conf/certs | SSL 证书文件存放目录 |
| HTML 根目录 | /usr/local/openresty/nginx/html | 静态网页文件根目录 |
| GeoIP2 数据库 | /usr/local/openresty/nginx/geo2_db | GeoIP2 数据库文件目录 |
您可以使用以下 docker run 命令启动容器。请根据实际路径替换 /my/custom/...。
docker run --name openresty \
-p 80:80 \
--restart=always \
-d \
-v /my/custom/logs:/usr/local/openresty/nginx/logs \
-v /my/custom/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf \
-v /my/custom/tcp_udp_proxy:/usr/local/openresty/nginx/conf/tcp_udp_proxy \
-v /my/custom/conf.d:/usr/local/openresty/nginx/conf/conf.d \
-v /my/custom/html:/usr/local/openresty/nginx/html \
-v /my/custom/geo2_db:/usr/local/openresty/nginx/geo2_db \
-v /my/custom/certs:/usr/local/openresty/nginx/conf/certs \
-v /etc/localtime:/etc/localtime:ro \
lushirong/openresty:latest
💡 提示:
- GeoIP2 数据库:若不挂载自定义数据库,容器将使用镜像内置的数据库文件。
- Nginx 配置:若不挂载自定义
nginx.conf,将使用镜像内置的默认配置。
基于地理位置与 IP 的访问控制
利用内置的 GeoIP2 模块,可以实现基于国家或 IP 的黑白名单功能。
location / {
set $is_allow 0;
# 禁止来源地理位置非中国的访问 (CN, HK, MO, TW)
if ($geoip2_country_code !~* "(CN|HK|MO|TW)") {
set $is_allow 1;
}
# 禁止特定 IP 访问
if ($realip = '80.66.83.48') {
set $is_allow 1;
}
# 执行拦截
if ($is_allow = 1) {
return 403 'deny';
break;
}
# ... 其他正常业务配置
}
Content type
Image
Digest
sha256:9af754729…
Size
320.8 MB
Last updated
4 months ago
docker pull lushirong/openresty