为什么要在 WSGI 服务器前面放置反向代理?

Vas*_*nov 7 http nginx proxy wsgi

部署 WSGI 应用程序的典型配置包括一个 WSGI 服务器(例如 uWSGI 或 Gunicorn),它位于充当反向代理的通用 Web 服务器(例如 nginx)后面。我知道拥有反向代理的一个主要原因是有效地提供静态文件。还有其他原因吗?

假设我的应用程序只涉及 Python 代码并且不关心静态内容。在这种情况下,为什么我需要反向代理?uWSGI 和 Gunicorn 都已经提供了一个能够与客户端交互的异步 HTTP 服务器。

是否有任何实际案例我最好将 WSGI HTTP 服务器直接暴露给外界?

tha*_*ere 9

  • 你有更多的配置选项和一个成熟的反向代理 - 像

    • 改写
    • 地点
    • 服务器
    • https
    • 头清理
    • 过期
    • 压缩包
    • ....
  • 你可以做负载平衡

  • 你可以使用 proxy_cache
  • 您可以实现自定义错误页面,即使您的应用服务器已关闭
  • 您可以实施 WAF
  • 您可以(有时)针对漏洞进行热补丁

加分点

  • 您可以使用以下设置 (nginx) 以每秒 100.000 个请求(平均硬件)给客户留下深刻印象:

.

location /perftest/ {
    return 200;
}
Run Code Online (Sandbox Code Playgroud)