
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
bunkerized-nginx是一款基于nginx的web服务器,以安全性为核心设计目标。它能够无缝集成到现有环境(包括Linux、Docker、Swarm、Kubernetes等),使web服务实现"默认安全",无需复杂配置。该镜像自动应用安全最佳实践,同时允许用户灵活控制各项设置以满足特定业务需求。
适用于需要增强web服务安全性的各类场景:
Docker
可从Docker Hub获取官方预构建镜像(支持x86、x64、armv7和aarch64/arm64架构):
shell$ docker pull bunkerity/bunkerized-nginx
或从源码构建:
shell$ git clone https://github.com/bunkerity/bunkerized-nginx.git $ cd bunkerized-nginx $ docker build -t bunkerized-nginx .
使用Docker容器时,需传递特定环境变量、挂载卷并映射端口以确保外部可访问。更多Docker集成信息请参考文档。
Docker autoconf
为解决环境变量配置需重建容器的问题,可使用bunkerized-nginx-autoconf镜像。该镜像监听Docker事件并实时自动配置bunkerized-nginx实例,无需重建容器。只需为web服务添加标签,autoconf将自动处理配置。更多信息请参考文档。
Swarm
在Docker Swarm集群中使用需共享文件夹(如NFS、GlusterFS等)。部署类似Docker autoconf,但使用服务而非容器。autoconf服务需部署在管理节点,监听Swarm事件并根据服务标签生成配置,然后向所有bunkerized-nginx任务发送重载命令。更多信息请参考文档。
Kubernetes
此集成仍处于测试阶段。在Kubernetes集群中使用需共享文件夹,bunkerized-nginx-autoconf作为Ingress Controller连接k8s API获取集群事件,生成配置并向实例发送重载命令。更多信息请参考文档。
Linux
此集成仍处于测试阶段。支持Debian 10、Ubuntu 20.04、CentOS 7和Fedora 34。提供https://github.com/bunkerity/bunkerized-nginx/blob/master/helpers/install.sh%E7%AE%80%E5%8C%96%E5%AE%89%E8%A3%85%E3%80%82%E5%AE%89%E8%A3%85%E5%90%8E%E7%BC%96%E8%BE%91%60/opt/bunkerized-nginx/variables.env%60%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%8C%E8%BF%90%E8%A1%8C%60bunkerized-nginx%60%E5%91%BD%E4%BB%A4%E5%BA%94%E7%94%A8%E9%85%8D%E7%BD%AE%E3%80%82%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E8%AF%B7%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3%E3%80%82
配置通过环境变量(键值对)完成。完整快速入门指南和环境变量列表见文档。
单站点配置
默认创建一个服务器块,适用于保护单个服务:
confSERVER_NAME=example.com www.example.com AUTO_LETS_ENCRYPT=yes DISABLE_DEFAULT_SERVER=yes USE_REVERSE_PROXY=yes REVERSE_PROXY_URL=/ REVERSE_PROXY_HOST=http://internal-service.example.local:8080 # Linux配置时取消注释 #HTTP_PORT=80 #HTTPS_PORT=443
多站点配置
启用多站点模式可创建多个服务器块,通过服务器名前缀独立配置:
confSERVER_NAME=app1.example.com app2.example.com # 全局配置(可被覆盖) AUTO_LETS_ENCRYPT=yes DISABLE_DEFAULT_SERVER=yes # app1.example.com的特定配置 app1.example.com_USE_REVERSE_PROXY=yes app1.example.com_REVERSE_PROXY_URL=/ app1.example.com_REVERSE_PROXY_HOST=http://internal-service.example.local:8080 # app2.example.com的特定配置 app2.example.com_REMOTE_PHP=my-fpm app2.example.com_REMOTE_PHP_PATH=/var/www/html # Linux配置时取消注释 #HTTP_PORT=80 #HTTPS_PORT=443
特殊文件夹
| 名称 | 位置(容器/Linux) | 用途 | 多站点支持 |
|---|---|---|---|
| www | /www /opt/bunkerized-nginx/www | 静态文件存储目录 | 是 |
| http-confs | /http-confs /opt/bunkerized-nginx/http-confs | HTTP上下文自定义nginx配置文件 | 否 |
| server-confs | /server-confs /opt/bunkerized-nginx/server-confs | 服务器上下文自定义nginx配置文件 | 是 |
| modsec-confs | /modsec-confs /opt/bunkerized-nginx/modsec-confs | ModSecurity核心规则集前加载的自定义配置文件 | 是 |
| modsec-crs-confs | /modsec-crs-confs /opt/bunkerized-nginx/modsec-crs-confs | ModSecurity核心规则集后加载的自定义配置文件 | 是 |
| plugins | /plugins /opt/bunkerized-nginx/plugins | 插件存储目录 | 否 |
| cache | /cache /opt/bunkerized-nginx/cache | 缓存数据(如外部黑名单)存储目录 | 否 |
| acme-challenge | /acme-challenge /opt/bunkerized-nginx/acme-challenge | Let's Encrypt挑战文件存储目录 | 否 |
更多特殊文件夹信息请参考文档。
bunkerized-nginx提供Web UI用于配置管理,支持直观的界面操作。更多信息请参考文档。
bunkerized-nginx提供预定义安全设置,建议根据具体需求进行调优。详细调优指南请参考安全调优文档。
本项目采用https://github.com/bunkerity/bunkerized-nginx/blob/master/LICENSE.md%E8%AE%B8%E5%8F%AF%E8%AF%81%E3%80%82
如需贡献,请阅读https://github.com/bunkerity/bunkerized-nginx/blob/master/CONTRIBUTING.md%E3%80%82
我们重视安全漏洞,鼓励负责任的披露,详见https://github.com/bunkerity/bunkerized-nginx/blob/master/SECURITY.md%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务