Nginx
1、什么是Nginx?
- Nginx(engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行;
- 特点:占用内存少,并发能力强;
- 中国大陆使用nginx网站用户有:百度、京东、网易、新浪、腾讯、淘宝等。
2、正向代理和反向代理区别?
- 正向代理,是在客户端的。比如需要访问某些国外网站,我们可能需要购买vpn,并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
- 反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
3、长连接和短连接区别?
- 短连接:连接->传输数据->关闭连接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
- 长链接:连接->传输数据->保持连接 -> 传输数据-> ...........->直到一方关闭连接,多是客户端关闭连接。长连接指建立SOCKET连接后 不管是否使用都保持连接,但安全性较差。
4、HTTP和HTTPS区别?
- https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用;
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
- http的连接是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
5、什么是集群?
- 将一个应用程序,部署到多台服务器上面,然后在这些服务器通过负载均衡服务器来择优选择哪一台服务器去执行(保证高可用)
6、什么是负载均衡(有哪些算法)?
- 将服务器接收到的请求按照规则分发的过程,称为负载均衡。
- 轮询法:负载均衡器收到请求之后,按顺序分配到后端的服务器上,不考虑服务器的性能、负载。比如有服务器A和服务器B两个服务器,轮询法的处理逻辑是第一次收到报文后交给服务器A来处理,第二次交给服务器B来处理,依次轮询;
- 随机法:负载均衡器收到请求之后,通过随机算法计算分配给哪台服务器,如果请求量特别大,那么起到的效果和轮询法一样。通常会使用随机函数,比如随机生成0到10的数据,小于5的使用服务器A,大于5的使用服务器B;
- 加权轮询法:不同服务器的配置、性能可能不一样,配置高的服务器可以多分配请求,权重可以配得高一些,配置低的服务器少分配请求,权重可以配得低一些;
- 加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置与系统的负载分配不同的权重。不同的是,它按照权重随机请求后端服务器,而非顺序;
- 源地址哈希法:源地址哈希法是根据请求的客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号;
- 最小链接数法:负载均衡器获取服务器的链接数,根据链接数来决定将请求分配到哪台服务器上,把请求分配给积压链接数最少的服务器。
7、Object类下有哪些方法?
- clone()用来另存一个当前存在的对象
- getClass()用于获得运行时的类型
- equals()用来比较两个对象的内容是否相等
- toString()方法返回该对象的字符串表示
- hashCode()方法用来返回其所在对象的物理地址
8、保证项目不停机的情况下,进行功能更新?平滑升级?
- 准备两台Tomcat, 分别以8080, 9090端口提供服务
- 假设当前是Nginx + Tomcat:8080在提供服务
- 将功能的更新发到当前闲置的Tomcat:9090
- 修改Nginx配置文件,将新请求从8080转到9090
- 执行nginx -s reload,新的请求将平缓过渡到9090,8080上的worker进程将在处理完剩余请求后才关闭
9、高并发 高可用 高性能?
-
高并发(High Concurrency)
- 是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。
- 常用指标有:
- 响应时间(Response Time):系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
- 吞吐量(Throughput):单位时间内处理的请求数量。
- QPS(Query Per Second):每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
- 并发用户数:同时承载正常使用系统功能的用户数量。
-
高可用(High Availability)
- 通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
- 一直都能用 99.9999%
-
高性能
- 是指服务响应时间快,(CPU/处理器/内存)特别是在高并发下响应时间不会急剧增加。
本文作者:Ritchie里其
本文链接:https://www.cnblogs.com/wang-zeyu/p/16659563.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步