
openiamdocker/rproxy-cerproxy 社区版 Docker 镜像是一个轻量级反向代理服务器的容器化实现,旨在提供简单、高效的 HTTP/HTTPS 请求转发能力。该镜像基于开源反向代理核心构建,专注于易用性和基础反向代理功能,适合开发、测试及小型生产环境使用。
docker run 或 docker-compose 启动容器,挂载配置文件并映射端口rproxy 使用文本配置文件定义代理规则、后端服务、负载均衡策略等。默认配置文件路径为容器内 /etc/rproxy/rproxy.conf,用户需通过挂载自定义配置文件覆盖默认配置。
配置文件基本结构示例(以路径路由为例):
conf# 全局配置 global { log_level = "info" # 日志级别:debug/info/warn/error max_concurrent = 1000 # 最大并发请求数 } # 代理实例配置 proxy "main" { listen = ":80" # 监听端口(HTTP) # listen_ssl = ":443" # 监听端口(HTTPS,需配置 ssl_cert 和 ssl_key) # ssl_cert = "/etc/rproxy/certs/server.crt" # SSL 证书路径 # ssl_key = "/etc/rproxy/certs/server.key" # SSL 私钥路径 # 后端服务组(负载均衡) upstream "backend_group" { server "web1:8080" weight=3 # 后端服务 1,权重 3 server "web2:8080" weight=1 # 后端服务 2,权重 1 server "web3:8080" backup # 备份服务(仅当主服务不可用时启用) strategy "weighted" # 负载均衡策略:round_robin/weighted/ip_hash } # 路由规则:路径匹配 route { path "/api/*" { proxy_pass "[***]" # 转发至 backend_group add_header "X-Proxy" "rproxy" # 添加响应头 } path "/" { proxy_pass "[***]" # 静态资源服务 } } # 访问控制 access_control { allow_ip "192.168.1.0/24" # 允许指定网段访问 deny_ip "10.0.0.100" # 拒绝指定 IP 访问 } }
容器支持通过环境变量调整部分运行参数(优先级低于配置文件):
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
MAX_CONCURRENT | 最大并发请求数 | 1000 |
CONFIG_PATH | 配置文件路径(容器内) | /etc/rproxy/rproxy.conf |
RELOAD_ON_CONFIG_CHANGE | 是否自动重载配置(true/false) | false |
docker run 命令通过挂载本地配置文件启动 rproxy 容器,映射 HTTP 端口(80):
bashdocker run -d \ --name rproxy \ -p 80:80 \ # 映射 HTTP 端口 -v /path/to/local/rproxy.conf:/etc/rproxy/rproxy.conf:ro \ # 挂载配置文件 -e LOG_LEVEL=debug \ # 设置日志级别为 debug rproxy:community
如需启用 HTTPS,需额外映射 443 端口并挂载证书文件:
bashdocker run -d \ --name rproxy \ -p 80:80 \ -p 443:443 \ # HTTPS 端口 -v /path/to/local/rproxy.conf:/etc/rproxy/rproxy.conf:ro \ -v /path/to/ssl/certs:/etc/rproxy/certs:ro \ # 挂载 SSL 证书目录 -e LOG_LEVEL=info \ rproxy:community
docker-compose 配置示例创建 docker-compose.yml 文件,定义 rproxy 服务及后端服务(以静态服务和 API 服务为例):
yamlversion: '3.8' services: rproxy: image: rproxy:community container_name: rproxy ports: - "80:80" # HTTP 端口 - "443:443" # HTTPS 端口 volumes: - ./rproxy.conf:/etc/rproxy/rproxy.conf:ro # 本地配置文件 - ./ssl_certs:/etc/rproxy/certs:ro # SSL 证书目录 environment: - LOG_LEVEL=info - MAX_CONCURRENT=2000 depends_on: - web1 - web2 - static_server restart: unless-stopped # 后端 API 服务 1 web1: image: nginx:alpine container_name: web1 volumes: - ./web1/html:/usr/share/nginx/html expose: - "80" # 后端 API 服务 2 web2: image: nginx:alpine container_name: web2 volumes: - ./web2/html:/usr/share/nginx/html expose: - "80" # 静态资源服务 static_server: image: nginx:alpine container_name: static_server volumes: - ./static:/usr/share/nginx/html expose: - "80"
启动服务:
bashdocker-compose up -d
docker kill -s SIGHUP rproxy 发送重载信号(若启用 RELOAD_ON_CONFIG_CHANGE=true)MAX_CONCURRENT 参数,并监控容器资源使用rproxy 社区版 Docker 镜像提供了轻量级、易配置的反向代理能力,适合开发、测试及小型生产环境使用。通过灵活的配置文件和容器化部署,可快速实现流量分发、SSL 终止、访问控制等功能,简化多服务架构的入口管理。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务