
gunicorn-proxy是一个Docker一键式反向代理,专为简化gunicorn的反向代理配置而设计。按照最佳实践,通常建议将gunicorn部署在反向代理之后,但在容器化环境中配置这一架构可能需要大量额外工作。该镜像通过仅需设置应用服务器的主机名和端口即可快速启动反向代理,并支持通过环境变量进行灵活配置。尽管名称包含"gunicorn",但它无特定于gunicorn的功能,可有效用于任何HTTP应用服务器。
该镜像可从以下仓库获取:
源代码可从GitHub获取:https://github.com/luhn/docker-gunicorn-proxy/
基本运行要求:需提供一个参数——应用服务器的主机名和端口。容器默认在8000端口运行反向代理,并将所有请求转发至指定的应用服务器。
Docker运行示例:
bashdocker run -p 8000:8000 --link gunicorn luhn/gunicorn-proxy gunicorn:8080
所有配置通过环境变量实现,以下是可用参数:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
MAX_CONNECTIONS | 最大同时连接数 | *** |
MAX_BODY_SIZE | 请求体最大大小 | 1m |
SCHEME | 设置X-Forwarded-Proto头 | 未设置 |
SSL_KEY | SSL密钥文件路径(启用HTTPS需设置) | 未设置 |
SSL_CRT | SSL证书文件路径(SSL_KEY设置时必填) | 未设置 |
SSL_PASSWORD_FILE | 证书验证密码文件路径 | 未设置 |
AUTO_SSL | 生成并使用自签名SSL证书 | 未设置 |
LOG | 日志输出位置(stdout/文件路径/syslog:server=地址) | 未设置 |
自定义响应头
通过设置以HEADER_为前缀的环境变量,可添加自定义响应头。变量名中的下划线会自动替换为连字符。
示例:
bashdocker run -e HEADER_STRICT_TRANSPORT_SECURITY="max-age=3153600" luhn/gunicorn-proxy app:8000
上述配置会在响应中添加头信息:STRICT-TRANSPORT-SECURITY: max-age=3153600
自定义SSL证书
当设置SSL_KEY和SSL_CRT时,代理将通过HTTPS提供服务。SSL配置基于Mozilla SSL配置生成器的中间兼容性配置。
使用示例:
bashdocker run -v /path/to/ssl:/ssl \ -e SSL_KEY=/ssl/server.key \ -e SSL_CRT=/ssl/server.crt \ luhn/gunicorn-proxy app:8000
自签名证书
设置AUTO_SSL环境变量时,将自动生成自签名SSL证书。适用于容器位于负载均衡器(如AWS ALB)之后的场景,因为ALB不验证后端证书,且VPC内传输被认为是安全的。
使用示例:
bashdocker run -e AUTO_SSL=1 luhn/gunicorn-proxy app:8000
通过LOG环境变量控制日志输出位置:
stdout:输出到标准输出/var/log/proxy.log):输出到指定文件syslog:server=address:发送到syslog服务器(详见nginx syslog文档)日志格式
默认使用nginx的"combined"日志格式:
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
可通过LOG_FORMAT自定义日志格式,详见nginx日志格式文档。若需JSON格式日志,可设置LOG_FORMAT_ESCAPE=json以转义日志值。
自定义日志格式示例:
bashdocker run -e LOG=stdout \ -e LOG_FORMAT='{ "remote_addr": "$remote_addr", "status": "$status" }' \ -e LOG_FORMAT_ESCAPE=json \ luhn/gunicorn-proxy app:8000
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务