nginx反向代理初理解

1.什么是Nginx?

Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。

2.正向和反向代理原理

正向代理(Forward Proxy)通常都被简称为代理,就是在用户无法正常访问外部资源. 通过代理的方式,让用户绕过防火墙,从而连接到目标网络或者服务。正向代理的工作原理就像一个跳板

反向代理就是将接收到的请求,转发给内部网络上的其他服务器,并接收处理结果,将处理结果返回给请求端.
即以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。
Nginx最常见的使用方法就是作为静态资源伺服器,比如将CSS,JS,html,htm等文件进行缓存处理。
在这里插入图片描述

3.Nginx的工作原理(如何实现反向代理):

1.启动后首先解析配置, 得到需要监听的端口与ip地址,然后在nginx的master进程里面,先初始化好这个监控的socket.
2.通过 fork函数创建出多个子进程, 子进程会竞争accept新的连接.

4.为什么使用Nginx?

优点:(三高+配置+消耗)
1.单机支持10万以上的并发连接(高并发)
2.响应请求快:(高性能)
在正常情况下,单次请求会得到nginx更快的响应;在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。
3.高可靠性(高可用)
用于反向代理,宕机的概率微乎其微
4.代理灵活,部署简单
可以通过端口代理和域名代理实现反向代理Nginx安装和配置比较简单,测试起来比较方便.
5. 低内存消耗
一般情况下,10 000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。

缺点:
1.Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些,这个是它的缺点。
2. nginx只适合静态和反向

3.nginx 均衡负载原理

Nginx提供的负载均衡策略有2种:内置策略扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

上3个图,理解这三种负载均衡算法的实现
在这里插入图片描述

Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
在这里插入图片描述

6.Nginx和Tomcat的区别

nginx常用做静态内容服务和代理服务器,将外来请求转发给后面的应用服务(tomcat,django什么的).
tomcat更多用来做做一个应用容器,让java web app可以在里边运行,对应同级别的有jboss,jetty等.

7.二者的服务器调优怎么做?

1).Nginx 优化:
1.软件的漏洞都和版本相关,所以我们要隐藏或消除web服务对访问用户显示的各种敏感信息.
2.根据参数优化:
①worker_processes 一般调整到与CPU的核数相同.因为默认情况下,nginx的进程跑在某一个CPU或CPU的某一个核上,导致nginx进程使用硬件的资源不均.
②调整nginx单个进程允许的客户端最大连接数

2).tomcat优化:
Connector 连接器的配置
a).bio(block i/o)
默认的模式,性能非常低下,没有经过任何优化处理和支持. 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
b).nio(new或non-blocking i/o)
Java SE 1.4及后续版本提供的一种新的I/O操作方式, 它拥有比传统I/O操作(bio)更好的并发运行性能. 利用Java的异步IO处理,可以通过少量的线程处理大量的请求.
Tomcat8在Linux系统中默认使用这种方式。
Tomcat7必须修改Connector配置来启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值