[英]What does the proxy_pass option in the NGINX config do?
NGINX proxy_pass配置有什么作用? 例如,假设我有一个在Amazon的EC2服务上托管的Django应用。
在EC2上,假设我在2个nginx服务器前面有1个负载均衡器。 Nginx服务器指向使用Gunicorn作为WSGI服务器的4个django应用服务器:
upstream my-upstream {
server 12.34.45.65:8000;
server 13.43.54.56:8000;
server 13.46.56.52:8000;
server 14.46.58.51:8000;
}
location / {
proxy_pass http://my-upstream;
}
什么是proxy_pass? 在这种情况下,它将是负载均衡器的URL吗?
看一下nginx的HttpProxyModule ,这是proxy_pass的来源。 proxy_pass文档说:
该伪指令设置代理服务器的地址以及将位置映射到的URI。
因此,当您将Nginx告诉proxy_pass
,就是说“将此请求传递到此代理URL”。
还有关于上游的文档:
该指令描述了一组服务器,可以在指令proxy_pass和fastcgi_pass中将它们用作单个实体。
因此,您将上游用于proxy_pass的原因是因为proxy_pass需要一个URL,但您希望将其传递给多个URL(因此您使用一个上游)。
如果您的负载均衡器位于您的nginx前面,则您的负载均衡器URL将不在此配置中。
应该是:proxy_pass my-upstream;
Nginx将在您的4个djano + gunicorn实例(您的上游)上平衡所有请求的负载。 负载均衡器将指向nginx服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.