
赌钱赚钱官方登录这些不一定是里面IP-手机赌钱游戏平台- 欢迎您
新闻动态
对于荒谬小的网站,运行web应用法子的单个干事器普通就弥散了。关系词,这对于大型网站来说后果欠安。在这种情况下,咱们使用“负载平衡”,这是一种将传入肯求分发到多个其他干事器的手艺,每个干事器皆运行一个web应用法子的副本。这是大型网站使用的手艺之一,即使在流量很大的情况下也能保捏平日运行。 天然大广泛东谈主使用nginx算作HTTP干事器,但它也有内置的负载平衡功能。在本文中,咱们将先容如安在您的系统上诞生它。 负载平衡 负载平衡是一种在多个筹算资源(如筹算机、收集一语气或磁盘)之间分配使命负
详情
对于荒谬小的网站,运行web应用法子的单个干事器普通就弥散了。关系词,这对于大型网站来说后果欠安。在这种情况下,咱们使用“负载平衡”,这是一种将传入肯求分发到多个其他干事器的手艺,每个干事器皆运行一个web应用法子的副本。这是大型网站使用的手艺之一,即使在流量很大的情况下也能保捏平日运行。
天然大广泛东谈主使用nginx算作HTTP干事器,但它也有内置的负载平衡功能。在本文中,咱们将先容如安在您的系统上诞生它。
负载平衡
负载平衡是一种在多个筹算资源(如筹算机、收集一语气或磁盘)之间分配使命负载的次第。它旨在普及资源运用率,最大规模地普及朦拢量,镌汰反当令候,并确保容错性。在本文中,咱们将具体规划nginx营救的负载平衡类型。关系词,其他应用法子(如数据库干事器)也不错运用负载平衡。
典型的HTTP负载平衡诞生如下图所示。有好多用户发送肯求,负载平衡器将它们分发到好多干事器(称为后端)。这些后端中的每一个皆运行团结应用法子的副本。当这些干事器发出反当令,负载平衡器会将它们发送给客户端。
负载平衡器普通分为基于硬件和基于软件。基于硬件的负载平衡器是专用建设,它们佩戴专用集成电路(ASIC),不错荒谬灵验地路由流量。另一方面,基于软件的负载平衡器,如nginx或HAproxy,在软件中扩充负载平衡。
此外,不错在各式收集层扩充负载平衡。顾名念念义,第4层负载平衡器通过查验传输层的请乞降反应来平衡流量。此外,还有第7层负载平衡器,它在应用层查验流量以找出问题。后者稍许浩大一些,因为它对事物有很高的看法。举例,一个知谈HTTP的第7层平衡器不错查验URL,并凭证URL将肯求分拨到不同的后端集。
nginx不错扩充TCP和UDP的第4层负载平衡,以选取7层HTTP负载平衡。在接下来的几节中,咱们将看到若何为此指标树立nginx。
对于树立文献
在大广泛Linux刊行版上,nginx树立文献位于/etc/nginx/nginx.conf中。然则,在Debian/Ubuntu上,此文献分为两个不同的文献:/etc/nginx/nginx.conf用于主树立,/etc/nginx/sites-enabled/default用于您托管的各个网站。若是你使用的是Debian/Ubuntu,你应该在前者中添加上游块,在后者中添加位置块。
负载平衡web应用法子
在连续之前,您需要诞生一些后端干事器,咱们的web应用法子将在这些干事器上运行。这些干事器将在每台干事器上运行一个HTTP干事器。对于咱们的示例,咱们将假定咱们也曾诞生了它们,而况这些后端干事器在192.168.0.1、192.168.0.2和192.168.0.3处可用。天然,这些不一定是里面IP,也不错是外部IP或主机名。
目下,有两件事需要将nginx树立为负载平衡器。最初,在http部分,您需要指定一组具有上游块的后端干事器。然后,您需要将这些肯求代理到干事器。为此,大开树立文献并添加以下行:
这个敕令告诉nginx将任何URL的HTTP肯求传递给咱们定名为backend1的后端干事器集。若是你只想传递特定的网址,你不错这么作念:
location /shop { proxy_pass http://backend1;}
这将匹配总共以“/shop”来源的URL,并将其传递给后端干事器。您还不错膨大此办法,将不同的URL传递给不同的后端。在这个例子中,咱们为托管博客的干事器添加了另一个后端。然后,咱们树立了nginx,将以“/blog”来源的URL传递给新的后端。
nginx还营救使用FastCGI和uWSGI等领导,通过FastCGI_pass和uWSGI_pass领导,代理到其他几个条约。举例,假定端口9000上的每个后端干事器上皆运行着一个PHP-FPM防守程度,您想将肯求代理给它们。树立如下:
负载平衡计策
nginx有两种计策来汲取要向其发送肯求的干事器。默许情况下,它使用轮询算法来决定应向哪个干事器发送肯求。然则,也有其他计策可供汲取,您不错手动启用。least_conn计策汲取处理链接数最少的干事器。另一方面,ip_hash计策凭证在ip上运行哈希函数的闭幕来汲取干事器。这意味着来自团结IP的肯求最终会到达团结干事器。
要使用默许计策除外的计策,只需在上游块中提偏执称呼:
还有一个通用的哈希领导,不错在职何HTTP值上使用。在这个例子中,咱们凭证URL分发肯求:
hash $request_uri;
您不错通过为干事器分配权重来进一步更动默许计策。默许情况下,总共干事器的权重皆为1,这意味着nginx除了应用所使用的计策法规外,不会“偏疼”一个干事器。带有权重的示例树立如下:
upstream backend { server 192.168.0.1 weight=4; server 192.168.0.2 weight=2; server 192.168.0.3;}
正如你所看到的,咱们在这个例子中使用了轮回计策。凭证上头示例中清楚的权重,7个肯求中的每4个皆会发送到第一个干事器,其中2个发送到第二个干事器,1个发送到三个干事器。(正如咱们之前提到的,默许权重为1,是以咱们在上头的例子中不祥了它。)
其他高档树立
当nginx代理向这些干事器发出肯求时,它也会被迫地扩充健康查验。若是干事器未能发送反应,它会自动标志为反应,nginx会在一段时候内幸免向其发送肯求。fail_timeout值箝制nginx幸免向干事器发送肯求的时候。max_fails值诞生应该失败的肯求数,之后nginx将干事器标志为失败。
鄙人面的示例中,咱们将第一台干事器的max_fails诞生为3,fail_timeout诞生为20秒:
upstream backend { server 192.168.0.1 max_fails=3 fail_timeout=20s; server 192.168.0.2;}
此外,您不错标志特定干事器以辞别对待。若是您正在对某个后端干事器进行珍视,不错将其标志为已关闭。此干事器将处理的肯求目下被发送到组中的下一个干事器。您还不错将特定干事器标志为备份干事器。当总共其他干事器皆不行用时,肯求将传递给它。底下清楚了这两个领导的示例:
upstream backend { server 192.168.0.1; server 192.168.0.2; server 192.168.0.3 down; server 192.168.0.4 backup;}
一些常见问题
凭证您部署的应用法子的类型,负载平衡器可能会导致某些问题。普通,您会从web应用法子中收到404或其他空虚。这普通是因为“Host”标头包含后端干事器的地址,而不是其原始值。要处理此问题,不错在位置块中手动诞生:
location / { proxy_set_header Host $host; proxy_pass http://backend;}
好多复杂的web应用法子在腹地存储景况,若是负载平衡器在不同的干事器上分发会话肯求,它们可能会无法使命。为了处理这个问题,负载平衡器必须追踪反应开动肯求的原始后端干事器。这个办法被称为“会话捏久性”。可怜的是,此功能仅在nginx的营业版块中可用。然则,算作处理次第,您不错尝试ip_hash领导,该领导未来自团结ip的肯求转发到团结后端干事器。IP普通不会经常更动,因此这可能对您的用例来说弥散灵验。
传输层负载平衡
正如咱们之前提到的,nginx还不错在传输层扩充负载平衡。语法与咱们之前看到的略有不同。具体来说,上游和干事器部分皆包含在流块中。
要使用此功能,您必须使用--with-stream标志编译nginx。在Debian和Ubuntu上,存储库中的nginx版块也曾使用此标志编译,因此您不错径直使用它。
假定你有多个DNS干事器,你想使用nginx算作负载平衡器。您只需将其放入树立文献中:
stream { upstream dns_backends { server 8.8.8.8:53; server 8.8.4.4:53; } server { listen 53 udp; proxy_pass dns_backends; proxy_responses 1; }}
在这里,咱们界说了一些DNS后端,然后树立nginx来监听端口53上传入的UDP数据包。proxy_pass领导将它们发送到后端干事器。此外,默许情况下,nginx守望后端不错发送一个或多个反应。因为对单个肯求将有一个回报,是以咱们将proxy_responses诞生为1。
TCP的负载平衡的树立也基本差未几。
stream { upstream tcp_backend { server srv1.example.com:3306; server srv2.example.com:3306; } server { listen 3306; proxy_pass tcp_backend; }}
咱们之前样貌的负载平衡计策和其他树立选项也适用于这里。
nginx提供了浩大的负载平衡功能和各式万般的选项赌钱赚钱官方登录。