繁体   English   中英

NGINX配置中的proxy_pass选项有什么作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM