我的 Django 应用程序托管在 Amazon EC2 上。Gunicorn 在同一台机器上运行并提供我拥有的所有动态内容。没有静态内容。我有两台这样的机器(两台机器都在一个微型实例上运行 Ubuntu 11.04。它们很容易水平扩展)并且我在这两台服务器前面都有一个 ELB(弹性负载均衡器)。
例如,这两个 gunicorn/django ubuntu 机器的外部 ip 是:
12.34.567.12:8000 & 21:43:765:21:8000 (gunicorn runs on port 8000).
如果我将这些地址中的任何一个放入我的浏览器,我就可以与我的服务器交互并发送/检索数据。
当我在这两台机器前面放置一个 ELB 时,我可以用来与 BOTH DJANGO/GUNICORN SERVERS 交互的新地址是:
dualstack.myloadbalancer-123456789.us-east-1.elb.amazonaws.com:8000
当我在互联网上阅读大量资源时,许多人建议在 ELB 后面的 Django 应用服务器前面放置一个 NGINX 盒子,以缓冲慢速客户端的请求。我认为这将是一个很好的功能,因为我不想丢失任何请求。下图会解释的更清楚:
就像上图一样,我如何配置位于 django app/gunicorn 服务器前面的 nginx 盒子充当反向代理,以便它可以缓冲慢速客户端的请求?(这样,它不会超时,而是保留请求而不会丢失它)