这是一个初学者的问题,但我无法理解Gunicorn和Nginx之间的抽象.我不是在寻找一个详细的答案,只是在高层次上每个人扮演的角色是什么?他们如何互动?
解决方法:
根据Gunicorn’s deploy doc,我的理解是你使用Nginx作为Gunicorn的代理服务器.
由于Gunicorn从Ruby’s Unicorn开始移植,我假设Unicorn的限制和规格也适用于Gunicorn:
Unicorn is an HTTP server for Rack applications designed to only serve
fast clients on low-latency, high-bandwidth connections and take
advantage of features in Unix/Unix-like kernels. Slow clients should
only be served by placing a reverse proxy capable of fully buffering
both the request and response in between Unicorn and slow clients.
Although there are many HTTP proxies available, we strongly advise
that you use Nginx. If you choose another proxy server you need to
make sure that it buffers slow clients when you use default Gunicorn
workers. Without this buffering, Gunicorn will be easily susceptible
to denial-of-service attacks.
因此,Gunicorn提供快速,低延迟的高带宽客户端,Nginx为其他客户提供服务.