详解代理服务器及Squid

news2024/12/23 9:19:10

一、 代理服务器简介

   (1)什么是代理服务器

代理服务器英文全称为ProxyServer,其主要功能代理网络用户获取网络信息,起到内网和Internet的桥梁作用。

在TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服务器将响应的数据传送给客户端,同时在自己的缓存中保留一份该数据的拷贝。这样,再有客户端请求相同的数据时,代理服务器就可以直接将数据传送给客户端,而不需要再向该服务器发起请求。

   (2)代理服务器的作用

目前,代理服务器得到广泛的应用,它的作用主要表现在:

1、共享网络

代理服务器最主要的功能之一就是代理上网。随着互联网的发展,上网的人数呈现几何级增长,特别是局域网内几百台的计算机同时上网,网速成为瓶颈;另外,由于公网IP地址的稀缺,每台计算机拥有各自公网IP是不现实的事情,基于以上原因,代理服务器出现缓解了上述压力,它充分利用局域网出口的有限带宽,加快内网用户的访问速度,可以解决仅仅有一条线路一个IP,IP资源不足的现状局域网很多用户同时上网

2、提高访问速度

客户端本身带宽较小,通过带宽较大的代理服务器与Internet的连接,提高了网络带宽。另外,通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。

3、防止攻击

局域网内的计算机通常都是私有IP地址,通过一个代理服务器上网,隐藏了自身地址信息,外网的计算机无法确定内网的计算机IP地址,有效防止黑客利用扫描、刺探等方式的攻击,从而保护了主机的安全。

4、起到防火墙的作用

所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息,因此,代理服务器连接Internet与Intranet ,充当了防火墙。

二、 代理服务器工作原理

   客户端通过代理服务器访问Internet的工作原理如图所示。

从图可以看出,通过代理服务器访问Internet的过程如下:

(1)客户端A通过代理服务器访问Internet上的web服务器。

(2)代理服务器收到客户端A的访问请求,首先到本机的代理缓存中查找是否有客户端A需求的信息。

(3)如果有则直接将代理缓存中的信息传回客户端A;如果不存在需求的信息,则代理服务器通过Internet代替客户端A访问目标web服务器。

(4)web服务器将客户端A的需求信息传回到代理服务器。

(5)代理服务器将收到的信息存到缓存中,以备其他客户端的访问。

(6)同时,代理服务器将缓存中的信息最终传回给客户端A。

(7)客户端B向代理服务器提出相同的web请求。

(8)代理服务器同样首先查询代理缓存中是否有客户端B的需求信息。

(9)代理缓存中存在客户端B的需求信息,直接将信息传送给客户端B,客户端B无需再访问web服务器,节省了时间,提高了网络访问效率。

三、代理服务器软件Squid简介

Squid是一个在Linux环境下流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器软件。该软件由国家网络应用实验室的Duanne Wessels主持,NFS出资支持,以及互联网上众多的开发人员共同研发完成的。Squid的官方网站是http://www.squid-cache.org/,如图所示。

Squid有广泛的用途,从作为网页服务器的前置缓存(cache)服务器缓存相关请求来提高Web服务器的速度,到为多人共享网络资源而缓存万维网、域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

Squid优势主要表现在:

(1)功能齐全强大。Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP多种协议。

(2)支持多级缓存。Squid将数据缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。

(3)Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。 

(4)Squid支持透明代理。

(5)Squid使用访问控制清单(ACL)和访问权限清单(ARL)。

(6)提供HTTP服务器加速。 

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2186300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2 22.04 Carttographer安装

安装环境: Ubuntu22.04 ros2 humble # 下载源文件 git clone https://github.com/ros2/cartographer.git -b ros2 git clone https://github.com/ros2/cartographer_ros.git -b ros2# 使用小鱼一键配置rosdep wget http://fishros.com/install -O fishros &&am…

基于SSM的本科生操行评定管理系统

文未可获取一份本项目的java源码和数据库参考。 1课题名称 基于SSM的本科生操行评定系统 1.2课题来源和选题依据 随着时代的进步和国民生活水平的不断提高,教育也越来越被人们所重视,学校应该培养品学兼优的全方位人才,学生的行为习惯和日…

mac安装redis实践和客户端连接失败问题解决

文章目录 参考文档和网址redis和客户端安装下载Homebrew程序Mac系统设置redis后台运行设置连接密码安装ARDM使用ARDM连接redis错误解决 参考文档和网址 redis官网命令指导文档brew官网地址brew客户端下载地址redis客户端下载地址 redis和客户端安装 下载Homebrew程序 HomeB…

golang grpc进阶

protobuf 官方文档 基本数据类型 .proto TypeNotesGo Typedoublefloat64floatfloat32int32使用变长编码,对于负值的效率很低,如果你的域有可能有负值,请使用sint64替代int32uint32使用变长编码uint32uint64使用变长编码uint64sint32使用变长…

大语言模型入门(一)——大语言模型智能助手

一、大语言模型智能助手 2022年末ChatGPT一经推出,一时间不注册个账号用一下都跟不上潮流了。然而,我们要注册OpenAI的账号使用ChatGPT还是一件比较麻烦的事情(懂的都懂)。好在,国内各大团队非常给力地及时推出了自研的…

野火STM32F103VET6指南者开发板入门笔记:【1】点亮RGB

硬件介绍 提示:本文是基于野火STM32F103指南者开发板所写例程,其他开发板请自行移植到自己的工程项目当中即可。 RGB-LEDPin引脚:低电平-点亮,高电平-熄灭REDPB5GREENPB0BLUEPB1 文章目录 硬件介绍软件介绍:结构体方式…

三、数据链路层(上)

目录 3.1数据链路层概述 3.1.1术语 3.1.2功能 3.2封装成帧和透明传输 3.2.1封装成帧 ①字符计数法 ②字符(节)填充法 ③零比特填充法 ④违规编码法 3.2.2透明传输 3.2.3差错控制 差错原因 检错编码 奇偶校验 ☆循环冗余码CRC 例题 纠错…

社区医院疫苗接种预约小程序管理系统SpringBoot+vue

目录 一、项目概述 二、系统架构 1. 技术栈 2. 架构图 三、后端设计 1. 数据模型 2. API 设计 四、前端设计 五、功能实现 1. 用户登录注册 2. 接种建档 3. 疫苗展示 六、总结 一、项目概述 本项目旨在为社区医院提供一个高效便捷的疫苗接种预约管理系统。系统主要…

记一次vue路由跳转登陆之前的页面,参数丢失问题

一、背景 vue3.0,项目登陆之前访问某个可访问的页面,当跳转到需要登陆才能访问的页面时,跳转到登陆页面,登陆后再跳转到登陆之前需要登陆才能访问的页面,跳转时发现参数丢失了。 A页面(无需登陆&#xff…

【零基础保姆级教程】MMDetection3安装与训练自己的数据集

最近在跑对比试验,由于MMDetection框架的算法较齐全,遂决定写一篇教程留做参考。若你对流程有问题与疑问欢迎评论区指出 本文运行环境如下供参考: python版本3.9MMDetection版本3.3 一、虚拟环境的搭建 参考该博客搭建基本环境&#xff1…

【开源免费】基于SpringBoot+Vue.JS水果购物网站(JAVA毕业设计)

本文项目编号 T 065 ,文末自助获取源码 \color{red}{T065,文末自助获取源码} T065,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

从认识String类,到走进String类的世界

作为一个常用的数据类型,跟随小编一同进入String的学习吧,领略String的一些用法。 1. 认识 String 类 2. 了解 String 类的基本用法 3. 熟练掌握 String 类的常见操作 4. 认识字符串常量池 5. 认识 StringBuffer 和 StringBuilder 一:…

【吊打面试官系列-MySQL面试题】Mysql中的事务回滚机制概述?

大家好,我是锋哥。今天分享关于【Mysql中的事务回滚机制概述?】面试题,希望对大家有帮助; Mysql中的事务回滚机制概述? 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个…

职称评审一次通过需要注意什么?

谁能想到 被评委会全票通过的职称材料 居然要注意这么多细节 营业执照需要加盖公章 论文需要拆分上传 业绩需要连续提供近几年的 奖项可以加分 一些表格有模板 所以职称评审做材料还是有很多方面需要好好注意一下的,建议还是找机构帮你代理整理,因…

如何使用ssm实现基于web的网站的设计与实现+vue

TOC ssm756基于web的网站的设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范…

10. 模块

理想情况下,程序的结构清晰明了。它的运作方式易于解释,每个部分都发挥着明确的作用。 实际上,程序是有机生长的。当程序员发现新的需求时,就会添加新的功能。要使程序保持良好的结构,需要持续的关注和工作。这些工作只…

Linux ssh 免密登录配置

参考资料 ~/.ssh/configについて~/.ssh/configを使ってSSH接続を楽にする.ssh/configファイルでSSH接続を管理する 目录 一. 密钥生成1.1 生成工具1.1.1 OpenSSH1.1.2 Git 1.2 生成命令1.3 注意事项1.4 解决路径中的用户名乱码 二. 将公钥配置到目标服务,免密登录2…

Pycharm关于Interpreter问题:ModuleNotFoundError: No module named

PS:本来想写一个脚本,也好久没用python了,然后创建项目也不会了。 BG: 一直报错这个 ModuleNotFoundError: No module named 网上教程都试了,都不行,原因是在项目本身创建了一个环境,而不是,…

活动公司都是怎么去寻找客户的

活动公司都是怎么拓业务的?只有我靠缘分吗? 一直觉得这是一个很难的问题,毕竟活动都很低频,是不是都得先去交个朋。下面一些方法,说不定对你有用。 1、小红书推广、B站等自媒体平台; 2、抖音推广、百度推广等推广平台…

招联2025校招内推

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…