web-server – 为什么将Nginx设置为反向代理是一个好主意?

前端之家收集整理的这篇文章主要介绍了web-server – 为什么将Nginx设置为反向代理是一个好主意?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个在Gunicorn上运行的Django站点,通过Nginx使用反向代理.
难道Nginx不是一个额外的不必要的开销吗?
如何在Gunicorn上添加帮助?

解决方法

我将专注于缓慢的客户端行为,以及您的配置如何处理它,但不要试图相信这是唯一的好处.同样有利于慢客户端的方法也有利于快速客户端,SSL处理,处理流量激增以及在Internet上提供HTTP服务的其他方面.

Gunicorn是预售软件.对于低延迟通信,例如负载均衡器到应用服务器或服务之间的通信,预分叉系统可以非常成功.启动流程来处理请求没有任何成本,单个流程可专用于处理单个请求;消除这些因素可以导致整体更快,更有效的系统,直到同时连接数超过处理它们的可用进程数.

在您的情况下,您正在通过互联网处理高延迟客户端.这些慢速客户端可以占用相同的进程.当QPS很重要时,应用程序代码需要尽快接收,处理和解决请求,以便它可以转移到另一个请求.当慢速客户端直接与您的系统通信时,它们会占用该进程并降低速度.而不是尽快处理和处理请求,该过程现在还必须等待慢速客户端.有效的QPS下降.

以非常小的cpu和内存成本处理大量连接是Nginx等异步服务器所擅长的.慢客户端不会以相同的负面方式影响它们,因为它们擅长同时处理大量客户端.在Nginx的情况下,在现代硬件上运行它可以同时处理数万个连接.

在预分叉服务器前面的Nginx是一个很好的组合. Nginx处理与客户端的通信,并且不会因处理慢速客户端而受到惩罚.它以后端可以处理这些请求的速度向后端发送请求,使后端尽可能高效地利用服务器资源.后端在计算结果后立即返回结果,并且Nginx缓冲该响应以将其反馈以按照自己的节奏减慢客户端.同时,即使慢速客户端仍在接收结果,后端也可以继续处理另一个请求.

猜你在找的HTML相关文章