nginx-proxy-pass-dockerize是一个基于Nginx的轻量级反向代理镜像,旨在通过环境变量简化反向代理配置流程。无需手动编写Nginx配置文件,即可动态调整上游服务器地址、监听端口、虚拟主机、连接策略等核心参数。默认配置下,Nginx监听8080端口,并将请求代理至本地8000端口(127.0.0.1:8000),适用于Docker、Kubernetes等容器化环境中的服务请求转发场景。
使用默认配置启动(监听8080端口,代理至127.0.0.1:8000):
bashdocker run -d -p 8080:8080 instal/nginx-proxy-pass-dockerize:1.2
自定义上游服务器(例如代理至192.168.1.100:8080):
bashdocker run -d -p 8080:8080 \ -e NGINX_UPSTREAM_SERVER=192.168.1.100:8080 \ instal/nginx-proxy-pass-dockerize:1.2
以下是在Kubernetes中部署的示例(包含应用容器与代理容器):
yamlapiVersion: extensions/v1beta1 kind: Deployment metadata: name: instal-showcase-deployment namespace: instal-dashboard spec: replicas: 3 revisionHistoryLimit: 3 template: metadata: labels: app: instal-showcase spec: containers: # 应用容器(示例为gunicorn服务) - name: instal-showcase image: gcr.io/feisty-gasket-***/instal-showcase:latest ports: - name: gunicorn containerPort: 8810 readinessProbe: httpGet: path: /_probe port: gunicorn # nginx-proxy-pass容器 - name: instal-showcase-nginx image: instal/nginx-proxy-pass-dockerize:1.2 ports: - name: nginx containerPort: 8080 resources: requests: memory: "8Mi" cpu: "10m" readinessProbe: httpGet: path: /_probe port: nginx env: # 上游服务器(同一Pod内的应用容器地址) - name: NGINX_UPSTREAM_SERVER value: '127.0.0.1:8810' # 主域名 - name: NGINX_HOSTNAME value: instal.com # 额外虚拟主机 - name: NGINX_EXTRA_SERVER_NAMES value: 'showcase.instal.com' # 禁用上游连接保持 - name: NGINX_UPSTREAM_KEEPALIVE value: '0' # 启用主机重写 - name: NGINX_HOST_REWRITE_ENABLED value: '1' # 需重写的主机名 - name: NGINX_HOST_REWRITE_SERVER_NAMES value: [***]
| 环境变量名称 | 默认值 | 是否必填 | 说明 |
|---|---|---|---|
NGINX_ERROR_LOGLEVEL | info | 否 | 错误日志级别(如debug、info、warn、error) |
NGINX_WORKER_PROCESSES | 4 | 否 | Worker进程数量 |
NGINX_WORKER_CONNECTIONS | 4096 | 否 | 每个Worker进程可处理的最大连接数 |
NGINX_MULTI_ACCEPT | on | 否 | 是否允许Worker进程同时接受多个新连接(on/off) |
NGINX_UPSTREAM_SERVER | 127.0.0.1:8000 | 否 | 上游服务器地址(格式:host:port),Pod内代理可用127.0.0.1,独立服务需填DNS名称 |
NGINX_UPSTREAM_KEEPALIVE | 32 | 否 | 保持与上游服务器的连接数,设为0禁用连接保持 |
NGINX_SERVER_PORT | 8080 | 否 | Nginx监听端口 |
NGINX_HOSTNAME | - | 是(当启用主机重写时) | 主域名,用于匹配请求Host头(如instal.com) |
NGINX_EXTRA_SERVER_NAMES | - | 否 | 额外虚拟主机名,空格分隔(如"showcase.instal.com localhost") |
NGINX_CLIENT_MAX_BODY_SIZE | 70M | 否 | 客户端请求体最大大小(限制上传文件大小) |
NGINX_CLIENT_BODY_TIMEOUT | 60s | 否 | 客户端请求体传输超时时间 |
NGINX_FASTCGI_READ_TIMEOUT | 60s | 否 | FastCGI请求读取超时时间(如不使用FastCGI可忽略) |
NGINX_PROXY_READ_TIMEOUT | 60s | 否 | 从上游服务器读取响应的超时时间 |
NGINX_GZIP_TYPES | application/xml application/json | 否 | 需要启用gzip压缩的MIME类型,空格分隔 |
NGINX_KEEPALIVE_TIMEOUT | 3600s | 否 | 客户端连接保持超时时间(0禁用) |
NGINX_KEEPALIVE_REQUESTS | *** | 否 | 单个客户端连接可处理的最大请求数 |
NGINX_HOST_REWRITE_ENABLED | false | 否 | 是否启用主机重写(1/true启用,0/false禁用) |
NGINX_HOST_REWRITE_SERVER_NAMES | - | 是(当启用主机重写时) | 需重写的主机名,空格分隔(如"[***]") |
NGINX_ACCESS_LOG_TO_STDOUT | true | 否 | 是否将访问日志输出到标准输出(true/false) |
NGINX_REMOVE_XFORWARDEDFOR | false | 否 | 是否清除X-Forwarded-For头(true/false),避免错误值传递 |
NGINX_INFLATE_COMPRESSED_BODY | false | 否 | 是否启用gzip请求解压缩(通过lua脚本实现,true/false) |
灵感来源:[**]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429