引言:有反向代理,就有正向代理。正向代理:就是代用户上网。
举例:像长城这样的网络运营商,在他们公司有大量的代理服务器 ,当一个用户(A)要通过长城网络访问新浪服务器的时候,长城的代理服务器会把新浪返回的数据缓存到代理服务器上,当下一个用户(B)再访问同样的新浪资源的时候,长城的代理服务器会直接把上一个用户访问的资源直接返回给下一个用户B
image.png
反向代理
是代理服务器,把服务器发布出去。客户机发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务器接受客户机请求后,再向目的主机发送请求,并接受目的主机返回的数据,存放在代理服务器硬盘中,再发送给客户机。
现实生活中,普通用户想买汽车,是去4s店购买,而不是直接去汽车厂商。那么4s店就是汽车厂商的反向代理。
一、代理服务器的应用场景
1、堡垒机
image.png
只有堡垒机是公网服务器,目的服务器,放在私网下 ,这样就能防止目的服务器被攻击了。目的服务器,限制只接受堡垒机的ip , 并且只开发80端口
2、内网服务器发布场景
image.png比如公司就一个公网服务器 , 但是也有很多服务器要发布,那么就可以用反向代理的方式,发布多个虚拟主机,指向目的主机。
3、缓存场景
image.png缓存服务器,放置了大量的静态资源,当用户打开网页的时候,缓存服务器直接把静态资源直接返回给客户,这样既能提高用户的响应速度,也能减小动态服务器的压力。
二、反向代理原理
1) 客户端通过浏览器 发起请求 代理服务器
2)代理服务器 接受请求
3) 代理服务器 发起请求 业务服务器
4)业务服务器 接受请求
5)业务服务器 处理请求
6) 业务服务器 响应请求 代理服务器
7)代理服务器 响应请求 客户端
8)客户端通过浏览器渲染请求并展示给⽤户
配置代理服务器
location / {
index index.php index.html index.htm; #定义⾸⻚索引⽂件的名称
proxy_pass http://mysvr ;#请求转向mysvr 定义的服务器列表
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最⼤单⽂件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲⽤户端请求的最⼤字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存⽤户头信息的缓冲区⼤⼩
proxy_buffers 4 32k; #proxy_buffers缓冲区,⽹⻚平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #⾼负荷下缓冲⼤⼩(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存⽂件夹⼤⼩,⼤于这个值,将从upstream服务器传
}
网友评论