反向代理
代理:
反向代理结构:
概念:
Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求
多个客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息
代理流程: 缓存互联网中web服务的静态数据 代替客户端发送请求(正向代理),代替服务节点进行响应(反向代理)。代理服务器接收到客户端请求时,先在本地存储找到客户端请求的数据是否存在,如果存在,则直接响应客户端,若不存在,代理向服务节点发送数据请求,代理得到响应后将数据缓存在本地,在响应给client
正向代理:一般跟客户端处于相同网络,代替客户端发送请求,可以提高客户端的访问速度,节省带宽
反向代理:一般跟服务端处于相同网络,代理服务端接收请求,可以提高服务节点的安全性,减轻服务端的负载压力,节省带宽
反向代理作用:
1.提高访问速度
由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度,因此可在代理服务器上设限,过滤某些不安全信息。
2.防火墙作用
除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器
3.通过代理服务器访问不能访问的目标站点
互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网
实验:
#反向代理,nginx代理apache
#5.8安装nginx,5.4安装httpd
yum -y install httpd
echo apache > /var/www/html/index.html
systemctl start httpd
curl 192.168.5.4
apache
#反向代理设置
vim /usr/local/nginx/conf/nginx.conf
location / {
#root html;
#index index.html index.htm;
proxy_pass http://192.168.5.4; #设置所有请求转发到此IP地址
}
#重启nginx
killall nginx
nginx
访问nginx反向代理地址
curl 192.168.5.8
apache
#其他反向代理
location / {
#root html;
#index index.html index.htm;
proxy_pass http://192.168.2.20; #静态数据转发到apache的ip
}
location ~ \.php$ {
proxy_pass http://192.168.2.30; #以php结尾的转发到lnmp
}
location ~\.jsp$ {
proxy_pass http://192.168.2.40; #以jsp结尾的转发到tomcat
}
😕/192.168.2.40; #以jsp结尾的转发到tomcat
}