专属域名
文档搜索
提交工单
轩辕助手
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
...
tiangolo/uwsgi-nginx
官方博客热门镜像提交工单
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 · 专业版提供 SLA 级可用性保障 · 免费版为公共服务,可能存在不可用情况。了解差异 。 在线技术支持请优先 提交工单,技术交流欢迎加入官方QQ群:13763429 。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

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

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

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

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

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

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

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

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

uwsgi-nginx
tiangolo/uwsgi-nginx
自动构建

uwsgi-nginx 镜像详细信息

uwsgi-nginx 镜像标签列表

uwsgi-nginx 镜像使用说明

uwsgi-nginx 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

包含uWSGI和Nginx的Docker镜像,用于在单个容器中运行Python Web应用(如Flask),支持Python 3.9至3.12版本,提供Nginx处理HTTP连接与uWSGI运行Python代码的经典部署组合。
96 收藏0 次下载activetiangolo镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

uwsgi-nginx 镜像详细说明

uwsgi-nginx 使用指南

uwsgi-nginx 配置说明

uwsgi-nginx 官方文档

支持的标签及对应Dockerfile链接

  • python3.12, latest (Dockerfile)
  • python3.11, (Dockerfile)
  • python3.10, (Dockerfile)
  • python3.9, (Dockerfile)

已弃用的标签

🚨 以下标签不再受支持或维护,已从GitHub仓库中移除,但最后推送的版本可能仍在Docker Hub中可用(如果有人曾拉取过):

  • python3.8
  • python3.8-alpine
  • python3.7
  • python3.6
  • python2.7

这些版本的最后日期标签为:

  • python3.8-2024-10-28
  • python3.8-alpine-2024-03-11
  • python3.7-2024-10-28
  • python3.6-2022-11-25
  • python2.7-2022-11-25

注意:存在每个构建日期的标签。如果需要"固定"使用的Docker镜像版本,可以选择这些标签。例如:tiangolo/uwsgi-nginx:python3.12-2024-11-02。

uwsgi-nginx

Docker镜像,包含uWSGI和Nginx,用于在单个容器中运行Python Web应用(如Flask)。

概述

此Docker镜像允许创建在单个容器中通过uWSGI和Nginx运行的Python Web应用。

uWSGI与Nginx的组合是部署Flask和Django等Python Web应用的常用方式,在行业中广泛应用,可提供良好性能。(*)

该镜像最初设计为tiangolo/uwsgi-nginx-flask的基础镜像,但也可用作任何其他(基于WSGI的)Python Web应用(如Django)的基础镜像。

* 关于性能和特性的说明

如果启动新项目,使用基于ASGI而非WSGI的更新更快的框架可能更有利(Flask和Django均基于WSGI)。

可使用以下ASGI框架:

  • FastAPI(基于Starlette),配合此Docker镜像:tiangolo/uvicorn-gunicorn-fastapi。
  • Starlette,直接使用此Docker镜像:tiangolo/uvicorn-gunicorn-starlette。
  • 或任何其他ASGI框架,配合此Docker镜像:tiangolo/uvicorn-gunicorn。

FastAPI或Starlette的性能约为此镜像(tiangolo/uwsgi-nginx)的800%(8倍)。可查看第三方基准测试结果。

此外,若需使用WebSocket等新技术,基于ASGI的框架(如FastAPI或Starlette)会更简单(且可行),因为ASGI标准专为处理WebSocket所需的异步代码而设计。

若需使用基于WSGI的应用(如Flask或Django)

如果需要使用Flask或Django等旧版WSGI框架(而非ASGI框架),且追求最佳性能,可使用替代镜像:tiangolo/meinheld-gunicorn。

tiangolo/meinheld-gunicorn的性能约为此镜像的400%(4倍)。


GitHub仓库:[***]

Docker Hub镜像:[***]

🚨 警告:可能不需要此Docker镜像

你可能正在使用Kubernetes或类似工具。在这种情况下,很可能不需要此镜像(或任何其他类似基础镜像),直接从零构建Docker镜像可能更合适。


如果使用Kubernetes、Docker Swarm Mode、Nomad或其他类似复杂系统在多台机器上管理分布式容器,通常希望在集群级别处理副本,而非在每个容器中使用进程管理器启动多个工作进程(此镜像的做法)。

此类场景(如使用Kubernetes)中,应构建从零开始的Docker镜像,安装依赖,并运行单个进程而非此镜像。

例如,使用Gunicorn时,可创建文件app/gunicorn_conf.py:

Python
# Gunicorn配置变量
loglevel = "info"
errorlog = "-"  # 标准错误输出
accesslog = "-"  # 标准输出
worker_tmp_dir = "/dev/shm"
graceful_timeout = 120
timeout = 120
keepalive = 5
threads = 3

然后创建Dockerfile:

Dockerfile
FROM python:3.9

WORKDIR /code

COPY ./requirements.txt /code/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY ./app /code/app

CMD ["gunicorn", "--conf", "app/gunicorn_conf.py", "--bind", "0.0.0.0:80", "app.main:app"]

可在FastAPI文档:容器中的FastAPI - Docker中了解更多相关理念,这些理念同样适用于容器中的其他Web应用。

何时使用此Docker镜像

简单应用

如果应用足够简单,无需(至少目前不需要)精细调整进程数量,可使用默认自动配置,且运行在单台服务器而非集群上,此时容器中运行带多个工作进程的进程管理器是合理的。

Docker Compose

若通过Docker Compose部署到单台服务器(非集群),由于Docker Compose难以在保留共享网络和负载均衡的同时管理容器副本,此时单个容器中通过进程管理器启动多个工作进程是更优选择。

Prometheus及其他原因

也可能因其他原因需要单个容器运行多个进程,而非多个容器各运行单个进程。

例如(取决于具体设置),可能在同一容器中运行Prometheus exporter等工具,需访问每个传入请求。若使用多个容器,Prometheus默认每次仅能获取单个容器的指标,而非所有副本容器的累积指标。此时,单个容器运行多个进程,并通过本地工具(如Prometheus exporter)收集所有内部进程的指标并暴露,会更简单。


更多详情可参考FastAPI文档:容器中的FastAPI - Docker,相关概念同样适用于其他容器中的Web应用。

使用方法

无需克隆此仓库,可直接将其用作其他镜像的基础镜像。

假设有requirements.txt文件,可创建如下Dockerfile:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

COPY ./requirements.txt /app/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt

COPY ./app /app

# 你的Dockerfile代码...
  • 默认会在/app/uwsgi.ini查找uWSGI配置文件。
  • 该uwsgi.ini文件会尝试运行/app/main.py中的Python文件。

若构建Flask Web应用,建议使用tiangolo/uwsgi-nginx-flask。

高级用法

自定义应用目录

如需使用非/app的应用目录,可通过环境变量UWSGI_INI覆盖uWSGI配置文件路径,并将自定义uwsgi.ini文件放在该路径。

例如,需将应用目录设为/application而非/app,Dockerfile如下:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

ENV UWSGI_INI /application/uwsgi.ini

COPY ./application /application
WORKDIR /application

./application/uwsgi.ini文件内容:

ini
[uwsgi]
wsgi-file=/application/main.py

注意:必须包含WORKDIR选项,否则uWSGI会在/app目录启动应用。

自定义uWSGI进程数

默认镜像启动2个uWSGI进程,高负载时最多创建16个进程处理请求。可通过环境变量配置这些数值:

  • UWSGI_CHEAPER:起始uWSGI进程数,默认2。
  • UWSGI_PROCESSES:最大uWSGI进程数,默认16。

需确保UWSGI_CHEAPER小于UWSGI_PROCESSES。

例如,需起始4个进程,最大64个,Dockerfile如下:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

ENV UWSGI_CHEAPER 4
ENV UWSGI_PROCESSES 64

COPY ./app /app

自定义最大上传大小

默认Nginx允许无限制上传文件大小(与简单Python服务器行为一致,符合开发者预期)。如需限制Nginx最大上传大小,可添加环境变量NGINX_MAX_UPLOAD,值对应Nginx配置client_max_body_size标准格式。

例如,限制最大上传文件大小为1MB(标准Nginx默认值),Dockerfile如下:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

ENV NGINX_MAX_UPLOAD 1m

COPY ./app /app

自定义监听端口

默认容器监听80端口。如需修改,设置环境变量LISTEN_PORT,并添加相应EXPOSE指令。

Dockerfile示例:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

ENV LISTEN_PORT 8080

EXPOSE 8080

COPY ./app /app

自定义/app/prestart.sh

如需在启动应用前执行操作,可在/app目录添加prestart.sh文件,镜像会自动检测并在启动前运行。

例如,启动前运行数据库迁移(如Alembic或Django迁移),创建./app/prestart.sh:

bash
#! /usr/bin/env bash

# 等待数据库启动
sleep 10;
# 运行迁移
alembic upgrade head

如需启动前运行Python脚本,/app/prestart.sh可如下:

bash
#! /usr/bin/env bash

# 启动前运行自定义Python脚本
python /app/my_custom_prestart_script.py

注意:镜像使用.运行脚本(如. /app/prestart.sh),环境变量等会保留。

自定义Nginx工作进程数

默认Nginx启动1个"工作进程"。如需修改,使用环境变量NGINX_WORKER_PROCESSES。

可设为具体数字:

Dockerfile
ENV NGINX_WORKER_PROCESSES 2

或设为auto,自动检测CPU核心数并设置工作进程数:

Dockerfile
FROM tiangolo/uwsgi-nginx:python3.12

ENV NGINX_WORKER_PROCESSES auto

COPY ./app /app

自定义Nginx工作进程最大连接数

默认Nginx工作进程最大连接数为1024。如需修改,使用环境变量NGINX_WORKER_CONNECTIONS:

Dockerfile
ENV NGINX_WORKER_CONNECTIONS 2048

该值不能超过当前系统文件最大打开数限制,下节说明如何配置。

自定义Nginx文件最大打开数

Nginx工作进程连接数受文件最大打开数限制。可通过环境变量NGINX_WORKER_OPEN_FILES修改:

Dockerfile
ENV NGINX_WORKER_OPEN_FILES 2048

自定义Nginx附加配置

如需进一步配置Nginx,可在Dockerfile中将*.conf文件添加到/etc/nginx/conf.d/。

注意:启动时会在/etc/nginx/conf.d/nginx.conf和/etc/nginx/conf.d/upload.conf生成默认配置,请勿覆盖。自定义文件命名需不同于nginx.conf或upload.conf(如custom.conf)。

注意:自定义Nginx配置时(如参考博客或Stack Overflow答案),需使用uWSGI专用配置,而非其他模块(如ngx_http_fastcgi_module)的配置。

完全覆盖Nginx配置

如需彻底覆盖默认Nginx配置,可添加自定义配置文件/app/nginx.conf,该文件会复制到/etc/nginx/nginx.conf并使用。

此时,镜像不会生成任何Nginx配置,上述Nginx相关环境变量均失效,/etc/nginx/conf.d/*.conf中的附加配置也不会生效,除非自定义/app/nginx.conf显式包含:

conf
include /etc/nginx/conf.d/*.conf;

如需创建自定义/app/nginx.conf但不知从何入手,可参考测试用nginx.conf并修改。

技术细节

uWSGI与Nginx的组合是部署Python Web应用的常用方式。

大致流程:

  • Nginx作为Web服务器,处理HTTP连接,可直接高效提供静态文件。
  • uWSGI作为应用服务器,运行Python代码,与Nginx通信。

该镜像基于Docker推荐的Debian基础镜像,遵循Docker最佳实践,在***Python镜像上安装uWSGI和Nginx,通过Supervisord管理进程。


"每个容器一个进程"是经验法则,例如将应用和数据库分离到不同容器。但采用"微服务"架构时,若多个进程同属一个"服务",可在单个容器中运行(如Flask代码、uWSGI和Nginx),数据库在另一个容器,此即本镜像的设计思路。


容器/app目录中默认包含基于uWSGI文档示例的"Hello World"示例应用,单独运行镜像时可查看,实际项目中应覆盖或删除。

🚨 Alpine Python警告

简而言之:Python项目应避免使用Alpine,而使用slim Docker镜像版本。


需要更多细节?继续阅读👇

Alpine对其他语言(如Go)更有用:在一个Docker阶段构建静态二进制文件,复制到简单Alpine镜像中执行。但Python不同,Alpine不使用构建Python扩展的标准工具,安装包时,pip常无法找到Alpine的预编译包("wheel")。调试大量异常后会发现,需安装许多额外工具并构建依赖才能使用常见Python包。😩

这意味着,尽管原始Alpine镜像较小,但最终镜像大小可能与标准Python镜像(基于Debian)相当,甚至更大。🤯

且构建时间更长,消耗更多资源,构建依赖耗时增加,碳足迹也更大(每次构建使用更多CPU时间和能源)。🌳

如需精简Python镜像,应使用基于Debian的`slim

查看更多 uwsgi-nginx 相关镜像 →
nginx/nginx-ingress logo
nginx/nginx-ingress
by NGINX Inc.
认证
NGINX和NGINX Plus入口控制器是专为Kubernetes设计的流量管理工具,主要用于管理外部HTTP/HTTPS流量进入Kubernetes集群,支持请求路由、负载均衡、SSL终止、流量控制等功能,适用于容器化应用和微服务架构,其中NGINX Plus还提供商业支持、高级监控和增强的负载均衡能力,帮助提升集群流量管理的效率与安全性。
1111B+ pulls
上次更新:1 天前
nginx/nginx-prometheus-exporter logo
nginx/nginx-prometheus-exporter
by NGINX Inc.
认证
NGINX Prometheus Exporter用于收集并导出NGINX与NGINX Plus的监控指标,供Prometheus采集以实现对其运行状态的监控。
5050M+ pulls
上次更新:1 天前
nginxinc/nginx-unprivileged logo
nginxinc/nginx-unprivileged
by NGINX Inc.
认证
非特权NGINX Docker构建文件是指用于构建以非root用户身份在Docker容器中运行NGINX的配置文件,通过预设用户权限、环境变量及安全参数,确保NGINX在低权限模式下仍能正常处理HTTP请求、反向代理及负载均衡等功能,有效降低因容器漏洞引发的权限提升风险,适用于对安全性要求较高的生产环境部署场景。
1751B+ pulls
上次更新:2 天前

用户好评

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

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

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

用户评价详情

oldzhang - 运维工程师

Linux服务器

5

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

Nana - 后端开发

Mac桌面

4.9

配置Docker镜像源后,拉取速度快了数倍,开发体验提升明显。

Qiang - 平台研发

K8s集群

5

轩辕镜像在K8s集群中表现很稳定,容器部署速度明显加快。

小敏 - 测试工程师

Windows桌面

4.8

Docker镜像下载不再超时,测试环境搭建更加高效。

晨曦 - DevOps工程师

宝塔面板

5

配置简单,Docker镜像源稳定,适合快速部署环境。

阿峰 - 资深开发

群晖NAS

5

在群晖NAS上配置后,镜像下载速度飞快,非常适合家庭实验环境。

俊仔 - 后端工程师

飞牛NAS

4.9

Docker加速让容器搭建顺畅无比,再也不用等待漫长的下载。

Lily - 测试经理

Linux服务器

4.8

镜像源覆盖面广,更新及时,团队一致反馈体验不错。

浩子 - 云平台工程师

Podman容器

5

使用轩辕镜像后,Podman拉取镜像稳定无比,生产环境可靠。

Kai - 运维主管

爱快路由

5

爱快系统下配置加速服务,Docker镜像拉取速度提升非常大。

翔子 - 安全工程师

Linux服务器

4.9

镜像源稳定性高,安全合规,Docker拉取无忧。

亮哥 - 架构师

K8s containerd

5

大规模K8s集群下镜像加速效果显著,节省了大量时间。

慧慧 - 平台开发

Docker Compose

4.9

配置Compose镜像加速后,整体构建速度更快了。

Tina - 技术支持

Windows桌面

4.8

配置简单,镜像拉取稳定,适合日常开发环境。

宇哥 - DevOps Leader

极空间NAS

5

在极空间NAS上使用Docker加速,体验流畅稳定。

小静 - 数据工程师

Linux服务器

4.9

Docker镜像源下载速度快,大数据环境搭建轻松完成。

磊子 - SRE

宝塔面板

5

使用轩辕镜像后,CI/CD流程整体快了很多,值得推荐。

阿Yang - 前端开发

Mac桌面

4.9

国内网络环境下,Docker加速非常给力,前端环境轻松搭建。

Docker迷 - 架构师

威联通NAS

5

威联通NAS下配置镜像加速后,Docker体验比官方源好很多。

方宇 - 系统工程师

绿联NAS

5

绿联NAS支持加速配置,Docker镜像下载快且稳定。

常见问题

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

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

Q2:轩辕镜像免费版与专业版有分别支持哪些镜像?

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

Q3:流量耗尽错误提示

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

Q4:410 错误问题

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

Q5:manifest unknown 错误

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

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

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

查看全部问题→

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

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

登录仓库拉取

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

Linux

在 Linux 系统配置镜像加速服务

Windows/Mac

在 Docker Desktop 配置镜像加速

Docker Compose

Docker Compose 项目配置加速

K8s Containerd

Kubernetes 集群配置 Containerd

宝塔面板

在宝塔面板一键配置镜像加速

群晖

Synology 群晖 NAS 配置加速

飞牛

飞牛 fnOS 系统配置镜像加速

极空间

极空间 NAS 系统配置加速服务

爱快路由

爱快 iKuai 路由系统配置加速

绿联

绿联 NAS 系统配置镜像加速

威联通

QNAP 威联通 NAS 配置加速

Podman

Podman 容器引擎配置加速

Singularity/Apptainer

HPC 科学计算容器配置加速

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名加速

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

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