AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 590819
Accepted
user983447
user983447
Asked: 2014-04-24 06:44:24 +0800 CST2014-04-24 06:44:24 +0800 CST 2014-04-24 06:44:24 +0800 CST

为什么我有 uWSGI 时还需要 nginx

  • 772

当我想部署Django应用程序时,有很多关于如何配置nginx与uWGSI配合的教程。

但是为什么我在这个工具包中需要 nginx?uWSGI 本身可以服务于 WSGI Python 应用程序,它可以服务于静态文件,它也可以做 SSL。nginx 能做什么 uWSGI 不能?

nginx
  • 2 2 个回答
  • 32388 Views

2 个回答

  • Voted
  1. Best Answer
    Kromey
    2014-04-24T07:25:57+08:002014-04-24T07:25:57+08:00

    你没有。

    无论如何,这就是简单的答案——你不需要它。uWSGI 本身就是一个有能力的服务器。

    然而,像 nginx 这样的其他服务器已经存在了更长的时间并且(可能无论如何)更安全,并且具有 uWSGI 不支持的附加功能——例如,改进了对静态资源的处理(通过 Expires 或 E-Tag 的任意组合头、gzip 压缩、预压缩 gzip 等),可以显着减少服务器和网络负载;此外,Django 应用程序前面的 nginx 之类的服务器也可以实现动态内容的缓存,进一步有助于减少服务器负载,甚至有助于促进 CDN 的使用(这通常不适用于动态内容)。您甚至可以更进一步,将 nginx 放在一个完全独立的服务器上,将动态内容的请求反向代理到应用程序服务器的负载平衡集群,同时处理静态内容本身。

    例如,我的博客(虽然是 WordPress,但它前面确实有 nginx)被调整为缓存帖子 24 小时,缓存索引页面 5 分钟;虽然我在大多数情况下看不到足够的流量,但它可以帮助我的小 VPS 抵御偶尔的激增,否则可能会导致它崩溃——比如当我的一篇文章被选中时流量激增由拥有数千名追随者的 Twitterer 发布,其中许多人将其转发给了数千名追随者。

    如果我一直在运行一个“裸”的 uWSGI 服务器(并假设它是一个 Django 站点,而不是 WordPress),它可能会很好地经受住它——或者它可能已经崩溃和烧毁,让我错过了访问者. 让 nginx 在它前面来处理这个负载真的很有帮助。

    话虽如此,如果您只是在运行一个不会看到大量流量的小站点,那么就不需要 nginx 或其他任何东西——如果您想这样做,只需单独使用 uWSGI。另一方面,如果你会看到大量的流量......好吧,你可能仍然需要 uWSGI,但你至少应该考虑在它前面有一些东西来帮助负载。实际上,您确实应该使用已完成的站点对不同的配置进行负载测试,以确定在您的预期负载下最适合您的配置,并使用最终的配置。

    • 72
  2. Jcyrss
    2015-05-27T01:45:18+08:002015-05-27T01:45:18+08:00

    IMO,如果您将您的网站放在 Internet 而不是 Lab 中,您可能会看到不同之处。

    想象一个来自另一个国家的低网速用户打开网络浏览器访问您的网站。uWSGI 将在一个线程中处理该 Http 连接。由于网络速度低,该线程可能会花费相当长的时间来等待完整的 Http 请求。如果你的线程池大小是 100,想象一下 100 个用户这么慢,会发生什么?没有空闲线程来处理其他 Http 请求。

    但对于 Nginx 来说,情况完全不同。Nginx 是在“反应器模式”中设计的。你可以谷歌“反应器模式”来看看它是如何工作的。简而言之,慢速连接并不影响它处理其他 Http 请求。

    • 5

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve