
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
vlche/nginx-waf是一个基于Alpine的Docker容器,提供集成了ModSecurity3、Brotli压缩和Certbot的Nginx服务。Certbot用于Let's Encrypt SSL证书的自动续期。该镜像可作为一体化服务使用,也可作为SSL/负载均衡前端和WAF后端。
| 环境变量 | 说明 |
|---|---|
| TZ | 设置时区,如"Europe/Berlin" |
| WORKERS | 设置Nginx的worker_processes值 |
| CRON | 设置为1时启动嵌入式cron守护进程 |
| WAF_INSTANCE | 指定cron通知的目标WAF实例名称 |
使用默认配置启动nginx-waf:
bashdocker run --name nginx-waf \ --restart=always \ --net=host \ -e TZ=Europe/Berlin \ -e WORKERS=5 \ -v /data/nginx/conf.d:/etc/nginx/conf.d:rw \ -v /data/letsencrypt:/etc/letsencrypt:rw \ -v /data/www:/www:rw \ -p 80:80 -p 443:443 -d \ vlche/nginx-waf
Certbot自动更新可通过嵌入式cron或独立容器运行:
方法1:嵌入式cron
bashdocker run --name nginx-waf \ --restart=always \ --net=host \ -e TZ=Europe/Berlin \ -e WORKERS=5 \ -e CRON=1 \ -v /data/nginx/conf.d:/etc/nginx/conf.d:rw \ -v /data/letsencrypt:/etc/letsencrypt:rw \ -v /data/www:/www:rw \ -p 80:80 -p 443:443 -d \ vlche/nginx-waf
方法2:独立cron容器
bashdocker run --name nginx-waf-cron \ --restart=always \ -e TZ=Europe/Berlin \ -e WAF_INSTANCE=nginx-waf \ -v /data/nginx/conf.d:/etc/nginx/conf.d:rw \ -v /data/letsencrypt:/etc/letsencrypt:rw \ -v /data/www:/www:rw \ -v /run/docker.sock:/run/docker.sock \ vlche/nginx-waf \ /cron.sh
默认已启用OWASP CRS规则集,可按以下方式自定义:
1. 特定位置禁用ModSecurity
nginxserver { listen 80; server_name insecure.example.com; # 全局已在01-local.conf中启用modsec # modsecurity on; # modsecurity_rules_file /etc/nginx/modsec/main.conf; include snippets/letsencrypt.conf; include snippets/policy_headers.conf; # 静态文件目录禁用modsecurity location /static/ { modsecurity off; root /usr/share/nginx/html; } # 为/api/路由禁用特定规则 location /api/ { include snippets/proxy_headers.conf; proxy_pass http://backend; modsecurity_rules "SecRuleRemoveById 949110"; } }
2. 多服务器块配置建议
为减少内存占用,建议在http上下文中加载ModSecurity规则文件,然后按端点自定义规则:
/etc/nginx/conf.d/00-local.conf 示例:
nginx# 全局启用modsec,如需按服务器启用请在此禁用 modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf; # SSL stapling所需的 resolver include snippets/resolver.conf; # 或自定义 resolver # resolver 8.8.8.8; include snippets/log.conf; include snippets/ssl.conf; include snippets/brotli.conf; # 增加客户端最大请求体大小(适用于Nextcloud等应用) client_max_body_size 512m; # 定义默认索引文件 index index.html index.htm; # WebSocket代理映射 map $http_upgrade $connection_upgrade { default upgrade; '' close; }
通过容器执行Certbot命令获取/更新证书:
bash# 进入容器 docker exec -it nginx-waf /bin/sh # 在容器内执行certbot命令 certbot --no-redirect --must-staple -d example.com # 或直接执行 docker exec -it nginx-waf certbot --no-redirect --must-staple -d example.com
证书将每天自动续期。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务