专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单页面收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
nginx-proxy

jwilder/nginx-proxy

自动构建
jwilder

用于Docker容器的自动化Nginx反向代理

2.3千 次收藏下载次数: 0状态:自动构建维护者:jwilder仓库类型:镜像最近更新:13 天前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,加速的不只是镜像。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,加速的不只是镜像。点击查看

概述

nginx - proxy 运行一个包含 Nginx 和 [docker - gen][1] 的容器。docker - gen 会为 Nginx 生成反向代理配置,并在容器启动或停止时重新加载 Nginx。

了解[为什么需要使用此工具][2]。

!latest 0.8.0 !nginx 1.19.3 !License MIT ![Build Status]([***] - proxy) ![](https://hub.docker.com/r/jwilder/nginx - proxy 'DockerHub') ![](https://hub.docker.com/r/jwilder/nginx - proxy 'DockerHub')

镜像变体

nginx - proxy 提供两种镜像变体:

jwilder/nginx - proxy:latest

基于 debian:jessie 的 Nginx 镜像。

bash
$ docker pull jwilder/nginx - proxy:latest

jwilder/nginx - proxy:alpine

基于 nginx:alpine 镜像,完全支持 HTTP/2(包括最新 Chrome 版本所需的 ALPN)。使用时需配合有效的证书(详见下文“使用 Let's Encrypt 实现 SSL 支持”)。

bash
$ docker pull jwilder/nginx - proxy:alpine

快速开始

基本运行

启动 nginx - proxy 容器:

bash
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx - proxy

然后启动需要被代理的容器,并设置环境变量 VIRTUAL_HOST=subdomain.youdomain.com:

bash
$ docker run -e VIRTUAL_HOST=foo.bar.com ...

被代理的容器必须通过 Dockerfile 的 EXPOSE 指令或 docker run/docker create 的 --expose 标志暴露(expose)需要代理的端口,且需处于同一网络。默认情况下,若创建 nginx - proxy 容器时未指定 --net 标志,它仅连接到默认的 bridge 网络,因此无法代理其他网络中的容器。

确保 DNS 配置将 foo.bar.com 转发到运行 nginx - proxy 的主机,请求将被路由到设置了 VIRTUAL_HOST 环境变量的容器。

Docker Compose 示例

yaml
version: '2'

services:
  nginx - proxy:
    image: jwilder/nginx - proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  whoami:
    image: jwilder/whoami
    environment:
      - VIRTUAL_HOST=whoami.local

启动服务:

bash
$ docker - compose up

测试访问:

bash
$ curl -H "Host: whoami.local" localhost
I'm 5b129ab83266

核心配置

虚拟主机(VIRTUAL_HOST)

通过环境变量 VIRTUAL_HOST 指定容器对应的虚拟主机,支持多个主机(用逗号分隔),例如:VIRTUAL_HOST=foo.bar.com,baz.bar.com。

虚拟端口(VIRTUAL_PORT)

若容器暴露多个端口,nginx - proxy 默认使用 80 端口。通过 VIRTUAL_PORT 环境变量可指定其他端口,例如:VIRTUAL_PORT=3000。若容器仅暴露一个端口且设置了 VIRTUAL_HOST,则自动使用该端口。

网络配置

多网络连接

默认情况下,nginx - proxy 仅连接到 bridge 网络。要代理其他网络中的容器,创建容器时需指定 --net=my - network,并可通过 docker network connect 连接到其他网络:

bash
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro \
    --name my - nginx - proxy --net my - network jwilder/nginx - proxy
$ docker network connect my - other - network my - nginx - proxy

IPv6 支持

通过设置环境变量 ENABLE_IPV6=true 启用 IPv6 支持:

bash
$ docker run -d -p 80:80 -e ENABLE_IPV6=true -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx - proxy

默认主机(DEFAULT_HOST)

设置默认主机,当请求未匹配任何 VIRTUAL_HOST 时使用:

bash
$ docker run -d -p 80:80 -e DEFAULT_HOST=foo.bar.com -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx - proxy

高级功能

通配符主机

支持主机名开头或结尾的通配符,例如 *.bar.com 或 foo.bar.*,也支持正则表达式(需以 ~ 开头),如 ~^foo\.bar\..*\.xip\.io 可匹配 foo.bar.127.0.0.1.xip.io 等。更多信息见 nginx server_names 文档。

后端类型配置

SSL 后端

若需通过 HTTPS 连接后端,在后端容器设置 VIRTUAL_PROTO=https。注意:若后端同时暴露 80 和 443 端口,需配合 VIRTUAL_PORT=443,否则默认使用 80 端口的 HTTPS,这通常不符合预期。

uWSGI 后端

设置 VIRTUAL_PROTO=uwsgi,后端容器需监听端口并暴露该端口(而非 socket)。

FastCGI 后端

设置 VIRTUAL_PROTO=fastcgi,后端容器需监听端口并暴露该端口(而非 socket)。通过 VIRTUAL_ROOT=xxx 指定 FastCGI 的根目录。

内外网访问控制

通过设置后端容器的 NETWORK_ACCESS=internal 环境变量,可限制其仅允许内网访问(默认内网定义为 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)。自定义内网范围需挂载文件到 nginx - proxy 的 /etc/nginx/network_internal.conf,内容示例:

# 定义为内网的网络
allow 127.0.0.0/8;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
allow 172.16.0.0/12;

# 拒绝其他网络流量
deny all;

启用内网访问限制后,外部客户端将收到 HTTP 403 Forbidden 响应。

若 nginx - proxy 前有负载均衡器/反向代理隐藏客户端 IP(如 AWS ALB),需使用 nginx 的 realip 模块(已预装)提取客户端 IP,配置可添加到 /etc/nginx/conf.d/ 目录下的文件中。详见 nginx realip 模块文档。

SSL 支持

基本配置

启用 SSL 需挂载证书目录:

bash
$ docker run -d -p 80:80 -p 443:443 -v /path/to/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx - proxy

证书和私钥需按虚拟主机名命名,格式为 <virtual_host>.crt 和 <virtual_host>.key,例如 VIRTUAL_HOST=foo.bar.com 对应 foo.bar.com.crt 和 foo.bar.com.key。

Let's Encrypt 集成

https://github.com/JrCs/docker - letsencrypt - nginx - proxy - companion 是 nginx - proxy 的轻量级 companion 容器,可自动创建/续期 Let's Encrypt 证书。设置 DHPARAM_GENERATION=false 可禁用 Diffie - Hellman 参数生成(默认 true):

bash
$ docker run -e DHPARAM_GENERATION=false ....

Diffie - Hellman 组

默认启用 Diffie - Hellman(DH)参数,预生成的 dhparam.pem 位于 /etc/nginx/dhparam/dhparam.pem。可挂载自定义文件覆盖,或按虚拟主机命名为 <virtual_host>.dhparam.pem。生成新参数可能耗时数分钟,首次启动时在后台低优先级进行。

  • 禁用自动生成:DHPARAM_GENERATION=false
  • 自定义位数:DHPARAM_BITS=1024(默认 2048,低位数兼容旧客户端如 Java 6/7)

分离容器部署时,需手动生成 DH 参数并挂载到 Nginx 容器的 /etc/nginx/dhparam/dhparam.pem。

通配符证书

通配符证书命名为域名的主域,例如 *.bar.com 证书对应 bar.com.crt 和 bar.com.key。

SNI 支持

多域名证书可通过 CERT_NAME=<name> 指定证书名,例如共享证书 shared.crt/shared.key,后端容器设置 CERT_NAME=shared 即可使用。

OCSP 装订

为域名启用 OCSP 装订,需在证书目录放置包含 CA 证书链的 PEM 文件 <domain>.chain.pem(中间 CA 到根 CA 的拼接),nginx - proxy 将其用于 ssl_trusted_certificate 指令并启用 OCSP 装订。

SSL 策略与重定向

默认 SSL 密码套件基于 Mozilla Intermediate 配置文件(版本 5.0),兼容 Firefox 27+、Android 4.4.2+ 等。设置 SSL_POLICY=Mozilla-Modern 可使用 Modern 配置文件(兼容 Firefox 63+、Android 10.0+ 等,不兼容 IE)。其他可用策略包括 Mozilla-Old 及 AWS ELB 策略(如 AWS-TLS-1-2-2017-01)。

默认行为:若容器有有效证书,80 端口请求重定向到 443;无证书则返回 503。通过 HTTPS_METHOD 自定义:

  • redirect(默认):HTTP 重定向到 HTTPS
  • noredirect:同时支持 HTTP 和 HTTPS,不重定向
  • nohttp:禁用 HTTP
  • nohttps:禁用 HTTPS

可在 nginx - proxy 容器(全局)或后端容器(单个)设置。使用 noredirect 时 HSTS 自动禁用。

HSTS 配置

默认启用 HSTS(HTTP Strict Transport Security),max - age=31536000。通过 HSTS=off 禁用,或自定义如 HSTS=max - age=31536000; includeSubDomains; preload。

自定义 Nginx 配置

替换默认代理设置

添加 /etc/nginx/proxy.conf 文件可替换默认代理配置,默认配置示例:

Nginx
# HTTP 1.1 支持
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_set_header X - Forwarded - Proto $proxy_x_forwarded_proto;
proxy_set_header X - Forwarded - Ssl $proxy_x_forwarded_ssl;
proxy_set_header X - Forwarded - Port $proxy_x_forwarded_port;

# 缓解 httpoxy 攻击
proxy_set_header Proxy "";

全局配置

在 /etc/nginx/conf.d/ 添加 .conf 文件(如 my_proxy.conf),可添加全局配置,例如:

Dockerfile
FROM jwilder/nginx - proxy
RUN {
      echo 'server_tokens off;';
      echo 'client_max_body_size 100m;';
    } > /etc/nginx/conf.d/my_proxy.conf

或挂载文件:

bash
$ docker run -d -p 80:80 -v /path/to/my_proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro ... jwilder/nginx - proxy

按虚拟主机配置

主配置

在 /etc/nginx/vhost.d/ 添加与 VIRTUAL_HOST 同名的文件,例如 app.example.com。多主机可使用符号链接共享配置。

默认配置

/etc/nginx/vhost.d/default 文件为未指定单独配置的虚拟主机提供默认设置。

Location 配置

添加 <VIRTUAL_HOST>_location 文件(如 app.example.com_location)可配置 location 块。默认配置文件为 default_location。

基本认证支持

为虚拟主机启用基本认证,需在 /etc/nginx/htpasswd/ 目录创建与 VIRTUAL_HOST 同名的文件。使用 apache2 - utils 生成凭证:

bash
$ docker run -d -p 80:80 -p 443:443 \
    -v /path/to/htpasswd:/etc/nginx/htpasswd \
    -v /path/to/certs:/etc/nginx/certs \
    -v /var/run/docker.sock:/tmp/docker.sock:ro \
    jwilder/nginx - proxy
$ htpasswd -c /path/to/htpasswd/foo.bar.com user

分离容器部署

可将 nginx - proxy 拆分为 Nginx 和 docker - gen 两个容器运行,避免将 docker socket 绑定到暴露的服务。需准备 https://github.com/jwilder/nginx - proxy/blob/master/nginx.tmpl 模板文件。

步骤

  1. 启动 Nginx 容器:
bash
$ docker run -d -p 80:80 --name nginx -v /tmp/nginx:/etc/nginx/conf.d -t nginx
  1. 启动 docker - gen 容器:
bash
$ docker run --volumes-from nginx \
    -v /var/run/docker.sock:/tmp/docker.sock:ro \
    -v $(pwd):/etc/docker - gen/templates \
    -t jwilder/docker - gen -notify-sighup nginx -watch /etc/docker - gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
  1. 启动后端容器:
bash
$ docker run -e VIRTUAL_HOST=foo.bar.com ...

贡献指南

提交 PR 或 issue 前,请先检查 GitHub 确保不存在重复。

本地运行测试

构建测试镜像:

bash
docker build -t jwilder/nginx - proxy:test .  # Debian 变体
# 或
docker build -f Dockerfile.alpine -t jwilder/nginx - proxy:test .  # Alpine 变体

运行测试:

bash
test/pytest.sh
# 或
make test

寻求帮助

使用问题请在 Q&A Group 提问。

[1]: https://github.com/jwilder/docker - gen [2]: [***] - nginx - reverse - proxy - for - docker/

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 nginx-proxy 镜像标签

docker pull docker.xuanyuan.run/jwilder/nginx-proxy:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull jwilder/nginx-proxy:<标签>

更多 nginx-proxy 镜像推荐

rancher/nginx-proxy logo

rancher/nginx-proxy

rancher
暂无描述
3.2千+ 次下载
7 年前更新
nginxproxy/nginx-proxy logo

nginxproxy/nginx-proxy

nginxproxy
使用docker-gen为Docker容器提供自动化nginx反向代理,可自动生成配置并在容器启停时重载nginx。
170 次收藏1000万+ 次下载
13 天前更新
dataprime/nginx-proxy logo

dataprime/nginx-proxy

dataprime
暂无描述
100万+ 次下载
11 个月前更新
pebbletech/nginx-proxy logo

pebbletech/nginx-proxy

pebbletech
该镜像运行nginx和docker-gen,自动为Docker容器生成反向代理配置,并在容器启停时重载nginx,实现容器服务的自动反向代理管理。
2 次收藏100万+ 次下载
9 年前更新
pocketplaylab/nginx-proxy logo

pocketplaylab/nginx-proxy

pocketplaylab
这是一个基于Nginx和docker-gen的动态反向代理镜像,适用于AWS环境,支持HTTPS,可自动根据容器的VIRTUAL_HOST环境变量生成反向代理配置并实时重载Nginx,简化多容器服务的路由管理。
100万+ 次下载
8 年前更新
luizeof/nginx-proxy logo

luizeof/nginx-proxy

luizeof
基于Nginx的HTTP代理Docker镜像,用于在Docker环境中实现HTTP请求转发和反向代理功能,简化容器间通信及服务暴露配置。
1 次收藏100万+ 次下载
13 天前更新

查看更多 nginx-proxy 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

排错

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

DNS 超时

DNS 解析 · 网络超时

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
jwilder/nginx-proxy
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
教程轩辕镜像功能与使用教程
安装一键安装 Docker 并配置镜像源
官方公众号:源码跳动|官方技术交流群:13763429
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.