nginx负载均衡策略有哪些 解锁nginx负载均衡配置及其策略

多用户访问存在问题。当一个项目正在开发时,只有少数人会去参观。这个时候可以用tomcat很好的访问它,但是访问量大的时候服务器处理不好。有些朋友可能不知道什么是tomcat。什

本文最后更新时间:  2023-03-09 15:12:31

多用户访问存在问题。

当一个项目正在开发时,只有少数人会去参观。这个时候可以用tomcat很好的访问它,但是访问量大的时候服务器处理不好。有些朋友可能不知道什么是tomcat。

什么是tomcat?

Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,ApacheHTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两 个 HTTPweb server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文 件来进行配置。

具体请参考官方文档,因为要介绍nginx,这里就不赘述了。

Tomcat官方文档“链接”

tomcat的缺点

首先不得不说,tomcat确实是一个非常有用的JavaWeb容器
,但是它的缺点也很明显,如下:

众所周知tomcat是一个轻量级的Web容器,并不能很好地处理一些比较复杂场景时出现的问题图形化做的不够直观,给非技术用户感觉比较不好缺少多个实例协同工作的设置,集群,多服务器缺少更多的监控功能和接口

例如
起初,只有少数用户访问服务器。

Tomcat此时可以很好的完成任务。

但是当游客数量增加时

显然,一台服务器无法满足需求
我们必须添加多台服务器来处理操作
所以这就是问题所在。如果添加了多台服务器,用户应该访问什么?

所以我们需要添加一个代理来接收用户的所有请求,并合理的分发到各个服务器上,而用户并不知情
nginx是我们此时的最佳选择。

Nginx是什么?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx文档

Nginx操作正向代理

代理实际上相当于请求的中继。比如一个网站国内无法访问,也就是被屏蔽了,我可以选择两种方式:

配置代理服务器VPN

客户:1。agency >: Server
例如
A(客户端)想租C(服务器)的房子,但是A(客户端)不认识C(服务器),租不到。
B(代理)知道C(服务器)可以租这个房子,所以你让B(代理)帮你租这个房子。

在这个过程中,C(服务器)不知道A(客户端)只知道B(代理)
C(服务器)不知道A(客户端)租房子,只知道房子租给了B(代理)。

反向代理

反向代理比正向代理更透明,客户端不知道自己是代理服务器。当客户端请求URL时,它将通过反向代理服务器,反向代理服务器将根据客户端的请求将请求转发到内部网服务器。intranet服务器将处理请求并将结果返回给反向代理服务器,反向代理服务器最终将结果返回给客户端,如图所示。

客户端1 >:代理:服务器
举个例子:
A(客户端)想租房子,B(代理)租给他。
这个时候C(服务器)其实就是楼主。
B(经纪人)是把这套房子租给A(客户)的中介。

在这个过程中,A(客户)不知道这个房子的房东是谁
。他甚至可能认为这个房子是B(经纪人)的。

负载均衡

Nginx提供了两种负载均衡策略:内置策略和扩展策略。内置的策略有轮询、加权轮询和Ip哈希。扩张战略

投票

加权轮询

Iphash对客户端请求的ip进行哈希处理,然后根据哈希结果将同一个客户端IP的请求分发到同一个服务器上进行处理,可以解决会话共享的问题。

静态和动态分离

动静分离。在我们的软件开发中,有些请求需要在后台处理,有些则不需要(比如css、html、jpg、js等等)。这些不需要在后台处理的文件称为静态文件。让动态网站中的动态页面按照一定的规则区分不变的资源和频繁变化的资源。将动态和静态资源拆分后,我们可以根据静态资源的特点进行缓存。提高资源的响应速度。

配置(本系列将有我对相关配置的理解和应用)

###静态资源访问server { listen 80; server_name hello.cq.com; location /static { root /Users/cq/study; index index.html index.htm; }}###动态资源访问 server { listen 80; server_name www.cq.com; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; }}

Nginx的优势

1.Nginx可以在大多数Unix Linux OS上编译运行,还有一个Windows移植版本。Nginx稳定版1.20.0已于2021年4月20日发布。一般新建站点建议使用最新的稳定版本作为生产版本,现有站点升级的迫切性不高。Nginx的源代码使用类似BSD的2条款许可。

2.Nginx是一个强大的高性能Web和反向代理服务。

3.在连接高并发的情况下,Nginx是Apache服务的良好替代品:Nginx是美国虚拟主机业务中老板们经常选择的软件平台之一。它可以支持多达50,000个并发连接的响应。感谢Nginx选择epoll和kqueue作为我们的开发模型。

服务器方面

Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。无缓存的反向代理加速,简单的负载均衡和容错。FastCGI,简单的负载均衡和容错。模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。支持 SSL 和 TLSSNI。

代码方面

Nginx代码完全是用C语言从头开始写的,已经移植到很多架构和操作系统上,包括Linux、FreeBSD、Solaris、Mac OS X、AIX和微软Windows。Nginx有自己的函数库,除了zlib、PCRE和OpenSSL,标准模块只使用system C库函数。此外,如果不需要这些第三方库或考虑到潜在的授权冲突,则可能不会使用它们。

代理服务系统

作为邮件代理服务:Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。