专属域名
文档搜索
提交工单
轩辕助手
Run助手
返回顶部
快速返回页面顶部
收起
收起工具栏

openbridge/nginx Docker 镜像 - 轩辕镜像

nginx
openbridge/nginx
自动构建
这是一个高性能、优化的NGINX Docker镜像,集成反向代理、Redis缓存、CDN支持、Let's Encrypt SSL、安全防护及监控功能,适用于快速部署高性能网站和应用,确保性能、可靠性、安全性与可扩展性。
8 收藏0 次下载activeopenbridge镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

NGINX 加速版:含反向代理、Redis、CDN、Let's Encrypt 等功能

!Image of Nginx

这是一个高性能、优化的NGINX Docker镜像,用于快速交付网站和应用,提供性能、可靠性、安全性和可扩展性。该NGINX服务器具备高级性能、Web和移动加速、安全控制、应用监控及管理功能。

核心功能与特性

该镜像包含以下配置增强:

  • 反向代理
  • SEO优化
  • 可自定义配置
  • SSL支持,包括Let's Encrypt SSL证书
  • 基于MIME类型的缓存
  • Redis LRU缓存
  • Fastcgi缓存
  • 代理缓存
  • tmpfs文件缓存
  • Brotli和Gzip压缩
  • 内容迁移重定向
  • 安全与机器人防护
  • 通过Monit监控进程、端口、权限等
  • 标准化的UID/GID和权限(www-data)
  • GeoIP支持
  • 连接速率限制(减缓***者速度)
  • CDN支持
  • 缓存清除
  • 可与高性能PHP-FPM容器配合使用

该系统还有更多其他优势,欢迎尝试!

快速开始

安装

第一步是构建或拉取镜像:

构建
docker
docker build --build-arg "NGINX_VERSION=1.15.4" -t openbridge/nginx .

将NGINX_VERSION=1.15.4替换为您偏好的版本。您也可以直接拉取镜像,见下文。

拉取
docker
docker pull openbridge/nginx:latest

您还可以通过拉取指定版本的镜像来使用不同的NGINX版本,例如:

docker
docker pull openbridge/nginx:1.15.3
docker pull openbridge/nginx:1.15.2
docker pull openbridge/nginx:1.15.1

查看所有可用版本请访问 [***]

运行

通过Docker Compose:

docker
docker-compose up -d

使用指定的yml文件:

docker
docker-compose -f ./compose/html.yml up -d --remove-orphans

提供了示例HTML配置文件./compose/html.yml和PHP配置文件./compose/php.yml,可供快速启动使用。

配置说明

请注意,/conf/*目录中的配置文件是预设的,是特定实现偏好和需求的工作示例。

提供了两种预构建配置:一种是/conf/html/*下的HTML站点配置,另一种是/conf/php/*下的PHP站点配置。应用会根据NGINX_CONFIG环境变量查找要使用的配置目录。例如,若运行HTML站点并使用/conf/html/*配置,设置NGINX_CONFIG=html;若运行PHP站点并使用/conf/php/*配置,设置NGINX_CONFIG=php;若使用自定义配置/conf/<my-custom-config>/*,设置NGINX_CONFIG=my-custom-config。

基础NGINX配置位于/conf/basic/*,设置NGINX_CONFIG=basic可运行基础NGINX环境。

环境变量(ENV)说明

/conf目录中的ENV配置包含以下核心变量:

  • NGINX_DOCROOT:设置默认网站根目录,未设置时默认值为/usr/share/nginx/html
  • NGINX_SERVER_NAME:设置nginx.conf中的默认服务器名,未设置时默认值为localhost
  • NGINX_CONFIG:设置镜像的默认配置目录,参见/conf目录下的html和php配置示例
  • NGINX_PROXY_UPSTREAM:设置反向代理的上游服务器,默认值为localhost:8080(容器内本地服务)
  • REDIS_UPSTREAM:设置Redis缓存服务器的上游服务器,默认值为server localhost:6379;

若使用PHP,需设置PHP-FPM端点:

  • PHP_FPM_UPSTREAM:设置PHP-FPM上游服务器,默认值为server localhost:9000;

更多示例请查看/env目录。

挂载网站内容

以下是站点的目录约定:

  • /etc/nginx/sites-available/ – 不同站点的Nginx配置文件
  • /usr/share/nginx/html – 网站根目录
  • /usr/share/nginx/html/example.com – (可选)域名特定的内容目录

要挂载网站应用或HTML文件,需将主机上的文件目录挂载到容器中,并确保在运行命令或docker-compose.yml中设置NGINX_DOCROOT(默认值为/usr/share/nginx/html):

docker
-v /your/webapp/path:{{NGINX_DOCROOT}}:ro

可将缓存目录挂载到内存文件系统(tmpfs)以提升性能:

docker
-v /tmpfs:{{CACHE_PREFIX}}:ro

如需自定义配置文件,可类似挂载配置目录,确保Nginx和PHP能正确识别文件位置。

NGINX /conf/配置文件结构

以下是镜像中配置文件的结构,包含用于浏览器内容缓存和重定向的Nginx map设置,内容缓存基于MIME类型实现。

NGINX配置文件说明:

  • /etc/nginx/ – 所有Nginx相关配置
  • /etc/nginx/bots.d/* – 机器人和垃圾信息配置文件
  • /etc/nginx/conf.d/* – 核心配置文件(如PHP、安全、SEO等)
  • /etc/nginx/fastcgi.d/* – FastCGI基础配置
  • /etc/nginx/geo.d/* – IP允许/拒绝配置文件
  • /etc/nginx/header.d/* – HTTP、代理和FastCGI头配置
  • /etc/nginx/map.d/* – 缓存、访问规则、重定向等配置文件
  • /etc/nginx/redis.d/* – Redis缓存配置文件
  • /etc/nginx/site-available/* – 虚拟主机配置
  • /etc/nginx/status.d/* – Nginx服务器状态访问配置
  • /etc/nginx/upstream.d/* – 上游服务器配置
  • /etc/nginx/nginx.conf – Nginx主配置文件

配置文件的大致结构如下(可能随版本更新变化):

bash
/etc/nginx/
├── nginx.conf
├── conf.d/
│   ├── gzip.conf
│   ├── ssl.conf
│   ├── secure.conf
│   ├── location.conf
│   ├── seo.conf
│   └── nocache.conf
├── map.d
│   ├── cache/
│   │   ├── expires.map
│   └── redirects/
│       ├── example.map
│       ├── pages.map
├── bot.d
├── fastcgi.d
├── header.d
├── geo.d
├── redis.d
├── status.d
├── upstream.d
├── sites-available
map.d配置说明

map.d目录使用Nginx ngx_http_map_module实现条件配置,替代if条件语句,符合Nginx最佳实践:

  • 缓存(map.d/cache/*):基于MIME类型设置浏览器缓存过期时间,如image/gif max;
  • 重定向(map.d/redirects/*):配置页面移动或缺失时的重定向规则,如/blog/ [***]
  • 无缓存(map.d/nocache/*):设置不缓存的资源条件,如Wordpress的/wp-admin/目录
  • 缓存清除(map.d/purge/*):通过ngx_cache_purge支持条件缓存清除
  • 日志(map.d/logs/*):排除内部流量日志(如Monit健康检查)
  • 请求来源(map.d/referrer/*):基于请求来源设置条件行为,包括机器人检测

SSL配置

默认使用letsencrypt的SSL证书/密钥、路径和命名约定,也支持其他SSL证书,需遵循以下路径结构:

/etc/letsencrypt/live/${NGINX_SERVER_NAME}/;
├── server
│   ├── cert.pem
│   ├── chain.pem
│   ├── fullchain.pem
│   └── privkey.pem

SSL证书的默认路径在/conf.d/ssl.conf中定义:

nginx
ssl_certificate /etc/letsencrypt/live/{{NGINX_SERVER_NAME}}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{NGINX_SERVER_NAME}}/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/{{NGINX_SERVER_NAME}}/chain.pem;

挂载SSL证书

将主机上的证书目录挂载到容器中的证书路径:

docker
-v /your/certs/path:/etc/letsencrypt/live/{{NGINX_SERVER_NAME}}:ro

非Let's Encrypt证书可单独挂载文件:

docker
- /path/to/ssl/[***]
- /path/to/ssl/[***]
- /path/to/ssl/[***]
Docker Compose示例(含SSL)
docker
version: '3.1'
services:
  nginx:
    image: openbridge/nginx:latest
    container_name: nginx
    depends_on:
      - redis
    ports:
      - 80:80
      - 443:443
    tty: true
    restart: always
    tmpfs: /var/cache
    volumes:
      - /path/user/html:/usr/share/nginx/html
      - /etc/letsencrypt/live/[***]
      - /etc/letsencrypt/live/[***]
      - /etc/letsencrypt/live/[***]
    ulimits:
      nproc: 65535
      nofile:
          soft: 49999
          hard: 99999
    env_file:
        - ./env/prod.env
  redis:
    image: redis:alpine
    container_name: redis
    restart: always
  volumes:
    site:

Let's Encrypt证书安装(主机端)

在主机(非Docker容器)上安装certbot:

  1. 下载certbot:curl -O [***]
  2. 设置权限:chmod +x certbot-auto
  3. 移动可执行文件:mv certbot-auto /usr/local/bin/certbot-auto
  4. 生成证书:/usr/local/bin/certbot-auto certonly -n --debug --agree-tos --email *** --standalone -d *.openbridge.com

证书更新可通过cron任务实现,示例:

bash
cat << EOF > /tmp/crontab.conf
55 4,16 * * * /opt/eff.org/certbot/venv/local/bin/pip install --upgrade certbot
59 4,16 * * * /usr/local/bin/certbot certonly -n --debug --agree-tos --pre-hook="docker stop nginx" --post-hook="docker start nginx" --standalone -d *.openbridge.com > /dev/null
EOF
cat /tmp/crontab.conf | crontab - && crontab -l

开发环境自签名SSL证书

设置NGINX_DEV_INSTALL=true时,容器将自动安装自签名SSL证书(若证书不存在):

bash
if [[ ! -f /etc/letsencrypt/live/${NGINX_SERVER_NAME}/privkey.pem ]] || [[ ! -f /etc/letsencrypt/live/${NGINX_SERVER_NAME}/fullchain.pem ]]; then
  echo "OK: Installing development SSL certificates..."
  mkdir -p /etc/letsencrypt/live/${NGINX_SERVER_NAME}
  /usr/bin/env bash -c "openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj /C=US/ST=MA/L=Boston/O=ACMECORP/CN=${NGINX_SERVER_NAME} -keyout /etc/letsencrypt/live/${NGINX_SERVER_NAME}/privkey.pem -out /etc/letsencrypt/live/${NGINX_SERVER_NAME}/fullchain.pem"
  cp /etc/letsencrypt/live/${NGINX_SERVER_NAME}/fullchain.pem  /etc/letsencrypt/live/${NGINX_SERVER_NAME}/chain.pem
else
  echo "INFO: SSL files already exist. Not installing dev certs."
fi

安全增强

  • 前向 secrecy与Diffie-Hellman参数:生成2048位DHE参数(需耐心等待):openssl dhparam -out dhparam.pem 2048,挂载到/etc/pki/tls/dhparam.pem
  • HTTP严格传输安全(HSTS):已启用,强制浏览器仅通过HTTPS通信
  • Qualsys评分:通过Qualsys SSL测试([***]

权限配置

标准化用户、组及UID/GID,与其他应用(如PHP-FPM)无缝协作:

docker
&& addgroup -g 82 -S www-data \
&& adduser -u 82 -D -S -h /var/cache/php-fpm -s /sbin/nologin -G www-data www-data \

机器人与垃圾信息防护

集成“终极Nginx***机器人、用户代理、垃圾来源拦截器”,可阻止广告软件、***软件、勒索软件、点击劫持、SEO爬虫等,包含4000+***来源规则。

防护效果验证

在另一台Linux机器上运行以下命令(替换yourdomain.com为实际域名):

bash
# 正常机器人(应返回200 OK)
curl -A "googlebot" [***]

# ***机器人(应返回空响应)
curl -A "80legs" [***]
curl -A "masscan" [***]

# 垃圾来源(应返回空响应)
curl -I [***] -e [***]
curl -I [***] -e [***]

测试

设置NGINX_DEV_INSTALL=true时,容器将安装自签名SSL证书并复制测试文件到测试目录:

bash
cp /tmp/index.php "${NGINX_DOCROOT}"/testing/test_info.php
cp /tmp/test.html "${NGINX_DOCROOT}"/testing/test_nginx.html

可通过以下URL验证:

  • https://localhost/testing/test_nginx.html:HTML测试页面(显示"hello world")
  • https://localhost/testing/test_info.php:PHP信息页面(需配合PHP-FPM容器)

监控

通过Monit监控容器内服务。若Monit检测到Nginx异常,将执行STOP命令关闭容器。若运行时使用--restart unless-stopped参数,容器将自动重启。

示例监控配置(检查Nginx进程、权限、缓存大小等):

nginx
check process nginx with pidfile "/var/run/nginx.pid"
      if not exist for 5 cycles then restart
      start program = "/usr/bin/env bash -c '/usr/sbin/nginx -g daemon off'" with timeout 60 seconds
      stop program = "/usr/bin/env bash -c '/usr/sbin/nginx -s stop'"
      every 3 cycles
      if cpu > 80% for 10 cycles then exec "/usr/bin/env bash -c '/usr/sbin/nginx -s stop'"

check program wwwdata-permissions with path /usr/bin/env bash -c "check_wwwdata permission"
      every 3 cycles
      if status != 0 then exec "/usr/bin/env bash -c 'find {{NGINX_DOCROOT}} -type d -exec chmod 755 {} \; && find {{NGINX_DOCROOT}} -type f -exec chmod 644 {} \;'"

监控脚本(如check_folder、check_host)可验证权限、缓存大小及服务响应,确保SPA渲染服务正确返回内容,避免SEO问题。

查看更多 nginx 相关镜像 →
nginx logo
nginx
by library
官方
Nginx的官方构建版本是由Nginx官方团队开发并发布的正式软件版本,具备高性能、轻量级和稳定性等核心特性,支持HTTP、HTTPS、SMTP等多种协议,可广泛应用于Web服务器部署、反向代理、负载均衡及HTTP缓存等场景,经过严格测试与优化,确保了运行的安全性和可靠性,是全球众多企业及开发者构建高效网络服务的首选官方版本。
211351B+ pulls
上次更新:9 天前
nginx/nginx-ingress logo
nginx/nginx-ingress
by NGINX Inc.
认证
NGINX和NGINX Plus入口控制器是专为Kubernetes设计的流量管理工具,主要用于管理外部HTTP/HTTPS流量进入Kubernetes集群,支持请求路由、负载均衡、SSL终止、流量控制等功能,适用于容器化应用和微服务架构,其中NGINX Plus还提供商业支持、高级监控和增强的负载均衡能力,帮助提升集群流量管理的效率与安全性。
1111B+ pulls
上次更新:4 天前
nginx/nginx-prometheus-exporter logo
nginx/nginx-prometheus-exporter
by NGINX Inc.
认证
NGINX Prometheus Exporter用于收集并导出NGINX与NGINX Plus的监控指标,供Prometheus采集以实现对其运行状态的监控。
5050M+ pulls
上次更新:10 天前
nginx/nginx-ingress-operator logo
nginx/nginx-ingress-operator
by NGINX Inc.
认证
用于NGINX和NGINX Plus入口控制器的NGINX入口操作器,基于Helm图表构建。
31M+ pulls
上次更新:4 天前
nginx/unit logo
nginx/unit
by NGINX Inc.
认证
此仓库已停用,建议用户改用Docker官方提供的镜像,具体官方镜像可通过链接[***]
6510M+ pulls
上次更新:2 年前
nginx/nginx-quic-qns logo
nginx/nginx-quic-qns
by NGINX Inc.
认证
用于 NGINX QUIC 协议互操作性测试的 Docker 镜像,集成 QUIC 支持,简化 QUIC 实现的兼容性验证与功能测试流程。
110K+ pulls
上次更新:3 年前

轩辕镜像配置手册

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

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

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

镜像拉取常见问题

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

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

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

manifest unknown 错误

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

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

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

查看全部问题→

用户好评

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

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
openbridge/nginx
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429