当前位置: 首页 > Linux

理解代理服务器

时间:2023-04-06 06:14:27 Linux

代理服务器-Nginx反向代理的Docker部署作者|WenasWei什么是代理服务器?代理服务器(ProxyServer)的作用是代理网络用户获取网络信息。形象地说,它是网络信息的中转站,是个人网络和互联网服务提供商之间的中间机构,负责转发合法的网络信息,并对转发进行控制和注册。代理服务器作为连接Internet和Intranet的桥梁,在实际应用中扮演着极其重要的角色。它可以用于多种目的。最基本的功能是连接,还包括安全、缓存、内容过滤、访问控制管理等功能。更重要的是,代理服务器是Internet链路级网关提供的重要安全功能,其工作主要在开放系统互连(OSI)模型的对话层。代理服务器,客户端发送请求时,不会直接发送给目的主机,而是先发送给代理服务器。代理服务接受客户端请求后,将其发送给主机,并接收目的主机返回的数据,存储在代理服务器中。服务器的硬盘,然后发送给客户端。二、代理服务器的主要功能代理服务器的主要功能如下:缓存功能:可以降低成本,提高访问速度。可同时供多个用户使用,用于管理内网用户的权限和信息流计费。2.1缓存功能可以降低带宽成本,提高访问速度。由于目标主机返回的数据会保存在代理服务器的硬盘中,下次客户返回访问同一个站点数据时,会直接从代理服务器的硬盘中读取,充当缓存,特别是对于流行的站点,可以显着提高请求速度。2.2防火墙的作用由于所有客户端请求都必须经过代理服务器才能访问远程站点,因此可以对代理服务器进行限制,过滤掉一些不安全的信息。为了防止那些不相关的业务信息进入内部网络浪费通信费用,各个组织往往对允许访问的内容有一些相应的规定。通过代理服务器,网络管理员不仅可以通过过滤的方式方便地控制从互联网流入内部网络的信息内容,还可以实时监控用户上网情况,并创建审计日志以供日后参考。2.3访问无法通过代理服务器访问的目标站点互联网上有很多开放的代理服务器。当客户端的访问受到限制时,可以通过不受限制的代理服务器访问目标站点。一般来说,我们使用的浏览器都是使用代理服务器,虽然不能出国,但也可以直接访问外网。2.4一个IP地址或互联网账号供多个用户同时使用IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(2)个地址。2011年2月3日,在最后5个地址块分配给5个区域互联网注册机构后,IANA的主地址池用尽。在目前的情况下,IP地址是互联网上有限而宝贵的资源。如果这些IP地址仅仅用于单个用户上网请求,不能不说是一种资源浪费。使用代理服务器可以同时通过一个IP为多个用户提供上网服务。对于通过电话拨号连接到Internet的内部网络,可以使用电话线、调制解调器和Internet帐户来实现使内部网络中的所有用户都可以访问Internet。同时接入互联网,充分利用IP地址资源。2.5内网用户的权限管理和信息流量计费为了避免与业务无关的信息进入内网造成通信费的浪费,各组织往往对允许进入内网的内容有一些相应的规定。访问过。通过代理服务器,网络管理员不仅可以通过过滤的方式方便地控制从互联网流入内部网络的信息内容,还可以实时监控用户上网情况,并创建审计日志以供日后参考。三、正向代理和反向代理3.1正向代理正向代理是在客户端和目标主机之间建立的,只作为内部网络到互联网的连接请求的代理。发送到Web服务器的Http请求被发送到代理服务器。正向代理的用途:-(1)访问以前无法访问的资源,如google-(2)可以作为缓存,加速访问资源-(3)授权客户端访问,认证上网-(4)代理可以记录用户访问记录(网络行为管理),对外界隐藏用户信息3.2反向代理反向代理服务器设置在服务器端,通过缓存频繁请求的页面来减轻服务器的工作量,以及将客户端请求转发到内部网络。目标服务器;并将从服务器获得的结果返回给在互联网上请求连接的客户端。这时候代理服务器和目标主机就作为一个服务器出现了。反向代理的作用:(1)保证内网安全,防止web攻击,大型网站,通常使用反向代理作为公网访问地址,web服务器为内网(2)负载均衡,通过反向代理服务器优化网站的负载现在很多大型网站都使用反向代理。除了防止外网对内网服务器的恶意攻击、缓存减轻服务器压力和访问安全控制外,还可以进行负载均衡。请求被分发到多个服务器。3.3正向代理和反向代理的区别。服务器和客户端不知道实际提供服务的服务器。例如:在租用代理的正向代理中,代理和客户端属于同一个局域网,对服务器是透明的;在反向代理中,代理和服务器属于同一个局域网,对客户端是透明的。扩展四:Docker部署Nginx反向代理Tomcat通过nginx反向代理需要两个tomcat服务nginxserver:100.100.100.100:80tomcat1server:100.100.100.100:9090tomcat2server:100.100.100.100:90914.1startTomcat容器启动两个Tomcat容器,映射端口分别是9090和9091,/usr/local/docker/tomcat/docker-compose.yml如下:version:'3'services:tomcat1:image:tomcatcontainer_name:tomcat1ports:-9090:8080volumes:-./html:/usr/local/tomcat/webapps/ROOTtomcat2:image:tomcatcontainer_name:tomcat2ports:-9091:8080volumes:-./html2:/usr/local/tomcat/webapps/ROOT在/usr中创建目录和文件创建在/local/docker/tomcat/目录下html和html2两个目录,分别创建两个index.html文件#test80or#test80804.2启动Nginx容器启动Nginx容器,映射端口为80,/usr/local/docker/nginx/docker-compose.yml如下:version:'3.1'services:nginx:restart:alwaysimage:nginxcontainer_name:nginxports:-80:80volumes:-./conf/nginx.conf:/etc/nginx/nginx.conf数据卷nginx配置文件在/usr/local/docker/nginx/目录下创建conf目录,并创建nginx.conf文件,内容如下:usernginx;worker_processes1;events{worker_connections1024;}http{includemime.types;default_type应用程序/八位字节流;发送文件;keepalive_timeout65;#配置代理tomcat1serverupstreamtomcatServer1{serverwww.weishengqin.cn:9090;}#配置代理为tomcat2serverupstreamtomcatServer2{serverwww.weishengqin.cn:9091;}#配置虚拟主机服务器{listen80;位置/test1{proxy_passhttp://100.100.100.100:9090/;proxy_connect_timeout10s;}location/test2{proxy_passhttp://100.100.100.100:9091/;proxy_connect_timeout10s;}}}参考文献:[1]陆迪.简书:https://www.jianshu.com/p/bee..,2019.02.11.[2]百度百科:https://baike.baidu.com/item/...[3]凡业科技。博客园:https://www.cnblogs.com/taost..,2019-03-17.