轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
jwilder/nginx-proxy
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

nginx-proxy Docker 镜像下载 - 轩辕镜像

nginx-proxy 镜像详细信息和使用指南

nginx-proxy 镜像标签列表和版本信息

nginx-proxy 镜像拉取命令和加速下载

nginx-proxy 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

nginx-proxy
jwilder/nginx-proxy
自动构建

nginx-proxy 镜像详细信息

nginx-proxy 镜像标签列表

nginx-proxy 镜像使用说明

nginx-proxy 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用于Docker容器的自动化Nginx反向代理
2314 收藏0 次下载activejwilder镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

nginx-proxy 镜像详细说明

nginx-proxy 使用指南

nginx-proxy 配置说明

nginx-proxy 官方文档

概述

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

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

!latest 0.8.0 !nginx 1.19.3 !License MIT ![Build Status]([] - proxy) ![]([] - proxy 'DockerHub') ![]([***] - proxy 'DockerHub')

镜像变体

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

jwilder/nginx - proxy:latest

基于 debian:jessie 的 Nginx 镜像。

$ docker pull jwilder/nginx - proxy:latest

jwilder/nginx - proxy:alpine

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

$ docker pull jwilder/nginx - proxy:alpine

快速开始

基本运行

启动 nginx - proxy 容器:

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

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

$ 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 示例

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

启动服务:

$ docker - compose up

测试访问:

$ 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 连接到其他网络:

$ 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 支持:

$ 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 时使用:

$ 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 需挂载证书目录:

$ 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 集成

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

$ 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 文件可替换默认代理配置,默认配置示例:

# 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),可添加全局配置,例如:

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

或挂载文件:

$ 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 生成凭证:

$ 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 绑定到暴露的服务。需准备 nginx.tmpl 模板文件。

步骤

  1. 启动 Nginx 容器:
$ docker run -d -p 80:80 --name nginx -v /tmp/nginx:/etc/nginx/conf.d -t nginx
  1. 启动 docker - gen 容器:
$ 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. 启动后端容器:
$ docker run -e VIRTUAL_HOST=foo.bar.com ...

贡献指南

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

本地运行测试

构建测试镜像:

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

运行测试:

test/pytest.sh
# 或
make test

寻求帮助

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

[1]: [] - gen [2]: [] - nginx - reverse - proxy - for - docker/

查看更多 nginx-proxy 相关镜像 →
rancher/nginx-proxy logo
rancher/nginx-proxy
by Rancher by SUSE
认证
暂无描述
3.1K pulls
上次更新:6 年前
nginxproxy/nginx-proxy logo
nginxproxy/nginx-proxy
by nginxproxy
使用docker-gen为Docker容器提供自动化nginx反向代理,可自动生成配置并在容器启停时重载nginx。
16810M+ pulls
上次更新:1 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.