Nginx是一个http服务器,可以做请求转发,负载均衡 ( 处理静态资源 ,并将动态请求转发给Gunicorn);
Gunicorn是一个实现了wsgi的一个处理python代码的服务器 ( 处理动态请求 )
* Nginx更安全
* Nginx能更好地处理静态资源(nginx相对uwsgi/Gunicorn处理静态文件更有优势,性能更好)
* Nginx也可以缓存一些动态内容
* Nginx可以更好地配合CDN( 内容分发网络)
* Nginx可以进行多台机器的负载均衡
* 不需要在wsgi server那边处理keep alive
* 让Nginx来处理slow client
一句话来说,如果访问量不大,其实也没必要加个Nginx,uWSGI或者Gunicorn足以胜任。
直接通过uWSGI或gunicorn也可以让外网访问到的, 但是鉴于Nginx具有 负载均衡、拦截静态请求、 高性能、高并发、静态文件缓存、甚至还可以做到限流与访问控制,所以选择Nginx是很有必要的;