什么是反向代理?

https://baike.baidu.com/item/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86 反向代理是代理服务器的一种。服务器根据客户端的请求,从其关联的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在

为什么要反向代理优点是什么?

反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。

nginx主要用法有哪些?

1.http server 代替 apache

2.反向代理服务器,(隐藏原服务器的存在和特征,客户端只知道反向代理服务器的iP)

3.实现负载均衡(一台服务器的访问量是有限的,当超过他的承受能力的时候,服务器就会崩溃,为了让用户有更好的体验,可以通过负载均衡的方式分担服务器的压力。可以建立很多的服务器,组成一个服务器的集群,当用户访问网站时,先访问中间服务器,再从服务器集群中选择一个压力较小的服务器,然后将请求转发到该服务器,这样就可以有效地让每个服务器的压力趋于平衡,尽可能的避免服务器崩溃的情况发生)

4.虚拟主机

(不是一定是nginx的)负载均衡有哪几种方式?原理是什么?

1.HTTP重定向负载均衡 根据用户的HTTP请求计算一台应用集群中服务器的地址,并将此地址写入HTTP重定向响应中返回给用户。

2.DNS域名解析负载均衡 在DNS中配置多个A记录,每次域名解析请求都会根据负载均衡算法计算一个不同的IP地址返回,用户将会得到距离最近或者速度最快的一个服务器地址,这样可以加快用户的访问速度,改善性能。

3.反向代理负载均衡 使用反向代理服务器,它一般在web服务器前面,这个位置也正好是负载均衡服务器的位置,所以大多数反向代理服务器同时也提供负载均衡的功能。

4.网络层负载均衡

这种方法是在网络层通过修改请求目标地址进行负载均衡,网络层在七层网络层模型的第四层,所以也叫做四层负载均衡,也叫做IP层负载均衡。

请求达到负载均衡服务器后,由负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实web服务器的地址,然后修改请求的目的地址到这台真实的web服务器地址,等到web服务器处理完成后,响应数据包回到负载均衡服务器,再将数据包源地址修改为自身的IP(负载均衡服务器的IP)地址发送给用户浏览器

这里关键在于真实无力web服务器响应数据包如何返回给负载均衡服务器。一种是源地址转换(SNAT),第二种是负载均衡服务器作为网关服务器。

网络层的负载均衡在内核进程完成数据转发,有更好的性能。但是由于响应请求的流量要经过负载均衡服务器,容易成为瓶颈。

5.数据链路层负载均衡

数据链路层主要处理 mac 地址,所以使用修改mac地址进行转发请求。负载均衡数据分发过程中不修改IP地址,只修改mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的。由于web服务器的服务器地址IP和数据请求目的IP地址一致,不需要通过负载均衡服务器进行地址转换,可将相应数据包直接返回用户。如果有足够的公有IP,其实web服务器也可以直接使用自己的IP响应请求,不过这样web服务器必须绑定负载均衡的虚拟IP地址(VIP),才能保证web服务器收到来自负载均衡发送的数据包。

这种方式称作三角传输模式,单臂模式,也叫做直接路由方式(DR)。使用DR方式的链路层负载均衡是目前大型网站使用最广的一种负载均衡手段。