首页 > 编程知识 正文

angular面试题,java基础面试题及答案

时间:2023-05-04 06:50:09 阅读:27622 作者:525

Nginx的作用

这个问题是入门级知识点,讨论Nginx的有用性。 我希望能有几个重点,Nginx是高性能的web服务器和反向代理服务器,3358www.Sina.com/不仅可以实现负载均衡,还可以实现接口的电流限制、缓存等功能。

IMAP/POP3/SMTP

由于使用的是3358 www.Sina.com/使用Nginx的优势点Nginx网络http://www.Sina.com /型号,因此在实际生产环境中3愚人节5

epoll内存消耗很低。

kqueue跨平台,配置相对难度较低。

内置I/O运行状况检查功能,如果其中一个负载平衡服务器故障,收到的请求将发送到其他服务器进行处理。

支持3压缩,可以添加浏览器本地缓存的Nginx标头。

支持Nginx热部署,在不中断服务的情况下顺利进行配置更改。

通过Nginx异步接收用户请求,减轻了Gzip服务器的压力。

Header

这个问题出现了,朋友们可能知道一点NginxNginx这个字是http://www.Sina.com/http://www.Sina . 实际上,Web是异步异步阻塞,它使用Nginx如何实现高并发模型极大地优化了基本代码。 以前,Nginx是采用5进程、多个异步非阻塞进程的模式进程的3358www.Sina.com/进程数通常设置为与Nginx核心数相匹配,在异步无阻塞模式下,为epoll线程收到可以在的空闲时间接收和处理新的旧请求的Nginx后,返回并继续处理该请求,从而使少数1进程解决了高并发问题

master

如您所知,没有创建新线程,必须分配worker和内存。 当然,创建过程也是一样的,但是线程太多会占用太多内存。 因此,master通过单线程异步处理用户请求,无需继续为新线程分配worker和内存,从而减少了服务器内存消耗

worker

3358www.Sina.com/启动后,首先进行配置文件分析,分析成功后得到虚拟服务器的CPU和端口号,主进程worker设置进程将在其中创建http://www.Sina.com的callback选项,以及callback对应的3358www.Sina.com/地址和端口然后,创建子进程3358www.Sina.com/进程,客户端与worker握手三次,即可成功建立与Nginx为何不使用多线程?的连接。 当出现新请求时,空闲的3358www.Sina.com/进程发生冲突;如果某个cpu进程成功冲突,则连接成功的此Nginx

nx或者客户端主动关闭连接,此时一个请求处理完毕。

 

为什么要做动静分离?

在日常开发中,前端请求静态文件比如图片资源是不需要经过后端服务器的,但是调用API这些类型的就需要后端进行处理请求,所以为了提高对资源文件的响应速度,我们应该使用动静分离的策略去做架构。我们可以将静态文件放到Nginx中,将动态资源的请求转发到后端服务器去进行进一步的处理。

 

Nginx负载均衡的几种常用方式?

轮询方式:默认情况下Nginx使用轮询的方式实现负载均衡,每个新的请求按照时间顺序逐一分配到不同的后端服务器去进行处理,如果后端服务器宕机,则Nginx的健康检查功能会将这个后端服务器剔除。但是轮询方式是显而易见的:可靠性低而且负载分配不平衡,所以轮询方式更适用于图片服务器或者静态资源服务器。

weight:可以对不同的后端服务器设置不同的权重比例,这样可以改变不同后端服务器处理请求的比例。可以给性能更优的后端服务器配置更高的权重。

ip_hash:这种方式会根据请求的ip地址的hash结果分配后端服务器来处理请求,这样每个用户发起的请求固定只会由同一个后端服务器处理,这样可以解决session问题。

fail:这种方式有点类似于轮询方式,主要是根据后端服务器的响应时间来分配请求,响应时间短的后端服务器优先分配请求。

url_hash:这种方式是按照请求urlhash结果来将不同请求分配到不同服务器,使用这种方式每个url的请求都会由同一个后端服务器进行处理,后端服务器为缓存时效率会更高。

 

Session不同步如何处理?

上面其实提过了解决方案,负载均衡方式使用ip_hash方式,如果用户已经访问过某个后端器,则再次访问时会将这个请求的ip地址进行哈希算法转换,自动定位到该服务器。当然也可以通过redis缓存用户session,一样可以处理session不同步的问题。

 

Nginx常用优化配置

1. 调整worker_processes指定Nginx需要创建的worker进程数量,刚才有提到worker进程数一般设置为和CPU核心数一致。

2. 调整worker_connections设置Nginx最多可以同时服务的客户端数。结合worker_processes配置可以获得每秒可以服务的最大客户端数。

3. 启动gzip压缩,可以对文件大小进行压缩,减少了客户端http的传输带宽,可以大幅度提高页面的加载速度。

4. 启用缓存,如果请求静态资源,启用缓存是可以大幅度提升性能的。

 

Nginx正向代理

正向代理也是大家最常接触的到的代理模式,那究竟什么是正向代理呢?我们都知道Google在国内是无法正常访问的,但是某些时候我们由于技术问题需要去访问Google时,我们会先找到一个可以访问Google的代理服务器,我们将请求发送到代理服务器,代理服务器去访问Google,然后将访问到的数据返回给我们,这样的过程就是正向代理。正向代理最大的特点是客户端需要明确知道要访问的服务器地址,Google服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理可以隐藏真实客户端的具体信息。

 

        客户端必须设置正向代理服务器,而且需要知道正向代理服务器的IP地址以及代理程序的端口。一句话来概括就是正向代理代理的是客户端,是一个位于客户端和Google服务器之间的服务器,为了从Google服务器取得数据,客户端向代理服务器发送一个请求并指定目标(Google服务器),然后代理向原始服务器转交请求并将获得的数据返回给客户端。总结正向代理的几个作用:

访问国外无法访问的网站做缓存,加速访问资源对客户端访问授权,上网进行认证代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息


Nginx反向代理

多个客户端给服务器发送的请求,Nginx服务器接收到请求以后,按照一定的规则转发到不同的服务器进行业务逻辑处理,也就是我们刚才讲到的负载均衡的策略。此时请求来源于哪个客户端是确定的,但是请求由哪台服务器处理的并不明确,Nginx扮演的就是一个反向代理角色。可以这样来理解,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。反向代理代理的是服务端,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。总结下反向代理的两个作用:

 

保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
负载均衡,通过反向代理服务器来优化网站的负载

 

Nginx中正向代理与反向代理的区别

在正向代理中,隐藏了请求来源的客户端信息;
在反向代理中,隐藏了请求具体处理的服务端信息

 

更多Nginx面试题关注+点赞,私信我获取全文!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。