
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是一个通用的HAProxy Docker镜像,可用于非EEA相关项目。基于Debian Bullseye系统,集成HAProxy 2.9版本,默认暴露5000端口,提供高性能的TCP/HTTP负载均衡与反向代理能力。
DNS_ENABLED),适配动态服务发现场景(如Docker Swarm、Kubernetes):latest https://github.com/eea/eea.docker.haproxy/blob/master/haproxy/Dockerfile
| 标签 | HAProxy版本 | 发布版本 | Dockerfile链接 |
|---|---|---|---|
:2.9-1.1 | 2.9.9 | 1.1 | https://github.com/eea/eea.docker.haproxy/tree/2.9-1.1/haproxy/Dockerfile |
:2.0-1.0 | 2.0.31 | 1.0 | https://github.com/eea/eea.docker.haproxy/tree/2.0-1.0/haproxy/Dockerfile |
:1.8-1.8 | 1.8.31 | 1.8 | https://github.com/eea/eea.docker.haproxy/tree/1.8-1.8/haproxy/Dockerfile |
:1.8-1.7 | 1.8.30 | 1.7 | https://github.com/eea/eea.docker.haproxy/tree/1.8-1.7/haproxy/Dockerfile |
:1.8-1.6 | 1.8.29 | 1.6 | https://github.com/eea/eea.docker.haproxy/tree/1.8-1.6/haproxy/Dockerfile |
:1.8-1.5 | 1.8.22 | 1.5 | https://github.com/eea/eea.docker.haproxy/tree/1.8-1.5/haproxy/Dockerfile |
更多历史版本见https://github.com/eea/eea.docker.haproxy/releases
以下是使用eeacms/haproxy镜像的基础docker-compose.yml示例:
yamlversion: "2" services: haproxy: image: eeacms/haproxy depends_on: - webapp ports: - "80:5000" # 前端服务端口映射 - "1936:1936" # 统计页面端口映射 environment: BACKENDS: "webapp" # 后端服务名称(与下方webapp服务对应) DNS_ENABLED: "true" # 启用DNS解析后端 LOG_LEVEL: "info" # 日志级别 webapp: image: eeacms/hello # 示例后端服务
服务扩展:可通过docker-compose scale扩展后端实例数量:
bash$ docker-compose up -d --scale webapp=4 # 将webapp扩展至4个实例
验证:
http://localhost,多次刷新可观察后端服务器IP变化(负载均衡效果)http://localhost:1936查看统计页面,默认登录凭据为admin:admin(通过STATS_AUTH配置)注意:由于
DNS_TTL默认值限制,后端服务可能需要最多1分钟完成自动发现。
使用BACKENDS环境变量快速启动容器,直接指定后端服务器列表:
bash# 静态IP后端示例 $ docker run --env BACKENDS="192.168.1.5:80 192.168.1.6:80" eeacms/haproxy # DNS动态解析后端示例(适用于Rancher等动态服务发现场景) $ docker run --link=webapp -e BACKENDS="webapp" -e DNS_ENABLED=true eeacms/haproxy
BACKENDS格式:server_ip:port,多服务器用空格分隔(需用引号包裹)DNS_ENABLED=true:启用DNS解析,当后端存在多个DNS记录时(如容器集群),会负载所有解析结果通过挂载卷加载自定义haproxy.cfg:
bash$ docker run -v /本地路径/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg eeacms/haproxy:latest
配置热重载:修改配置后无需重启容器,可通过以下命令重载:
bash$ docker exec <容器名称> reload # <容器名称>为实际运行的HAProxy容器名
通过Dockerfile扩展基础镜像,内置自定义配置:
dockerfileFROM eeacms/haproxy:latest COPY ./conf.d/haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg # 复制自定义配置 # 可选:添加额外依赖 # RUN apt-get update && apt-get install -y <依赖包>
构建并运行自定义镜像:
bash$ docker build -t my-haproxy:v1 . # 构建镜像 $ docker run my-haproxy:v1 # 运行自定义镜像
| 环境变量 | 默认值 | 描述 |
|---|---|---|
STATS_PORT | 1936 | 统计页面绑定端口 |
STATS_AUTH | admin:admin | 统计页面登录凭据,格式user:password |
FRONTEND_NAME | http-frontend | 前端服务名称 |
FRONTEND_PORT | 5000 | 前端服务绑定端口 |
FRONTEND_MODE | http(或BACKENDS_MODE) | 前端模式(http/tcp) |
PROXY_PROTOCOL_ENABLED | false | 是否启用Proxy Protocol(true/false) |
COOKIES_ENABLED | false | 是否启用基于Cookie的会话保持(true/false) |
COOKIES_NAME | SRV_ID | 会话保持Cookie名称 |
COOKIES_PARAMS | - | Cookie参数,如indirect nocache maxidle 30m(参考HAProxy文档) |
BACKEND_NAME | http-backend | 后端服务名称 |
BACKENDS | - | 后端服务器列表,格式ip:port,空格分隔 |
BACKENDS_PORT | 80 | 后端默认端口(当BACKENDS未指定端口时使用) |
BACKENDS_MODE | http(或FRONTEND_MODE) | 后端模式(http/tcp) |
BALANCE | roundrobin | 负载均衡算法(如roundrobin/leastconn/source) |
SERVICE_NAMES | - | 服务名称前缀(用于自动发现,多前缀用空格分隔) |
LOGGING | 127.0.0.1:514(UDP) | 日志输出地址(格式ip:port) |
LOG_LEVEL | notice | 日志级别:emerg/alert/crit/err/warning/notice/info/debug |
DNS_ENABLED | false | 是否启用DNS解析后端 |
DNS_TTL | 1(分钟) | DNS解析缓存时间(后端自动发现间隔) |
TIMEOUT_CONNECT | 5000(ms) | 后端连接超时时间 |
TIMEOUT_CLIENT | 50000(ms) | 客户端请求超时时间 |
TIMEOUT_SERVER | 50000(ms) | 后端响应超时时间 |
HTTPCHK | meth GET uri / | HTTP健康检查方法与路径(如meth HEAD uri /health) |
HTTPCHK_HOST | localhost | 健康检查请求的Host头 |
INTER | 2s | 健康检查间隔时间 |
FAST_INTER | - | 过渡状态健康检查间隔(未设置则使用INTER) |
DOWN_INTER | - | 后端DOWN状态检查间隔(未设置则使用INTER) |
RISE | 2 | 后端恢复UP状态所需的连续健康检查通过次数 |
FALL | 3 | 后端标记DOWN状态所需的连续健康检查失败次数 |
容器内置rsyslog服务,日志默认输出至容器日志(UDP 127.0.0.1:514),默认日志级别为notice(仅记录重要事件)。
LOG_LEVEL环境变量设置,如LOG_LEVEL=infoLOGGING环境变量指定外部日志服务器,如LOGGING=logs.example.com:5005(需确保目标服务器监听UDP对应端口)本项目由欧洲环境署(EU)资助。
以下是 eeacms/haproxy 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务