1 . 1课题背景
Linux是由芬兰人Linus Torvalds开发并在1991年10月5日正式对外发布。由于具有结构清晰、功能简捷等特点许多高等院校的学生和科研机构的研究人员纷纷把它作为学习和研究的对象。
L inux操作系统称得上是UN IX的克隆版本和UN I X操作系统有许多相似之处。 自其诞生后借助于Interne t网络在全世界计算机爱好者的共同努力下现已成为今天世界上使用最多的一种UN IX类操作系统并且使用人数还在继续增加。 Linux在中国发展时间比较短人才积累非常少 国内Linux人才缺口逐渐的凸显已成为其产业发展的瓶颈。 Linux发展的关键是应用的普及但国内Linux方面的专业人才稀少且国内的专业人才远远不如Windows系统下的雄厚——不论是数量还是质量都远远不及。 Linux无限的应用前景和企业Linux人才的匮乏形成鲜明对比。据有关权威部门统计将来几年内我国软件行业的从业机会十分庞大 中国每年对软件人才的需求将达到50万人左右而对于Linux专业人才的就业前景更是广阔。现在的用人单位对高素质的软件工程师的需求可以用 “如饥似渴”来形容用人单位中多是银行的IT部门、政府部门和跨国IT企业等而且越是上规模的公司工作的拆分层次越清晰对于Linux 人才的需要越大。 目前众多中小企业的服务器应用及办公系统也在逐步向L i nux方向移植[1] 。据《开放系统世界》 2003年第八期介绍 中国五年内Linux 人才需求量将会超过120万而“1+1+1”工程的实施也是间接地告诉我们这个问题的严重性。 因此在我国培养linux的专业人员显得极其重要。
1 .2课程设计的目的
Squid是一个高性能的代理缓存服务器它支持F TP、GOPHER和HTTP协议支持SSL和访问控制它是用一个单独的、非模块化的、 I/O驱动的进程来处理所有的客户请求。它是个人网络和Interne t服务商之间的中间代理机构负责转发合法的网络信息对转发进行控制和登记是连接Interne t(广域网)与Intra ne t 局域网的桥梁。它能加快内部网访问Inte rnet的速度提高客户机的
页访问命中率。本课程设计主要是在Linux操作系统下完成S quid代理服务器的架设通过对Squid代理服务器的架设我们不但能了解其详细的工作原理也能熟悉L inux的相应操作深化了L inux及网络知识的学习。
页
2 Squid代理服务器的介绍
2. 1 squid代理服务器的简介
所谓代理服务器就是代表内部私有网络中的客户去请求Internet网中的资源并将响应的数据返回给客户机的服务器。它能够让多台没有公有IP地址的主机使用其代理功能访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求该请求先被代理服务器识别并由代理服务器代为向外请求资源并保存在本机缓存中客户端通过访问代理服务器的缓存实现访问请求。代理服务器是内部网络和ISPInte rnet服务商之间的中介它可以提供文件缓存、地址过滤、 网络监控等功能并且可以转发网络信息对转发信息进行控制[2]。squid是开源软件性能优秀 响应速度快降低了网络的拥塞率可以针对特定的的网站、用户、 网络、数据类型实施访问控制安全性高。 Squid代理服务器可以分为普通代理服务器、透明代理服务器、反向代理服务器。
普通代理服务器能够缓存静态的网页到到本地网络上的一台主机上即代理服务器。当被缓存的页面被第二次访问的时候浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。
透明代理就是客户端不知道有代理服务器的存在当然也不需要进行任何与代理有关的设置从而大大方便了系统管理员。
反向代理也就是通常所说的WEB服务器加速它是一种通过在繁忙的WEB 服务器和Interne t之间增加一个高速的W EB缓冲服务器即WEB反向代理服务器来降低实际的WEB服务器的负载。典型的结构如下图2.1所示。
图2. 1反向代理服务器结构图
页
2. 1代理服务器的工作原理
客户端A向代理服务器提出访问Inte rne t的请求代理服务器接受到请求后首先与访问控制列表中的访问规则相对照如果满足规则则在缓存中查找是否存在需要的信息。如果缓存中存在客户端A需要的信息则将信息传送给客户端。如果不存在代理服务器就代替客户端向Interne t上的主机请求指定的信息。Interne t上的主机将代理服务器的请求信息发送到代理服务器中 同时代理服务会将信息存入缓存中。代理服务器将Inte rnet上主机的回应信息传送给客户端A。客户端B向代理服务器提出相同的请求。代理服务器也首先与访问控制列表中的访问规则相对照。 如果满足规则则将缓存中的信息传送给客户端B[3]。其工作模式图如下图2.2所示。
如图2.2代理服务器工作模式图
页3 Squid的安装和配置
3. 1 Squid的安装
下载稳定版squid-3.2.0.6.tar.b z2用以下命令解开压缩包tar xvfj squid-3.2.0.6.STABLE.tar.bz2操作如图3.1所示。
图3.1 squid的解压操作图
然后进入相应目录对源代码进行配置和编译命令如下cd squid-3.2.0.6操作如图3.2所示。
图3.2 squid的编译操作图
整个编译过程如下[4] tar xvfj squid-3.2.0.6.STABLE.tar.bz2
#cd squid-3.2.0.6
#./c o nfigure
#mak e
#make install
3.2 Squid的配置
1Network Options 网络设置选项http_port 端口号
监听客户请求的端口默认3128icp_port 端口号
和其它squid发送和接收ICP查询时监听的端口 0表示禁止mcast_groups IP地址
指定一个多播组可以接收多播形式的ICP查询ht cp_prot 端口号
页同其它相邻的缓存服务器之间发送和接收H TC P查询时监听的端口0禁用tcp_outgoing_address IP地址
用于采用HTC P和C ARP方式同其它服务器通信默认255.255.255.255udp_incoming_address IP地址
接收其它缓存服务器的ICP数据报时使用的地址默认0.0.0.0udp_outgoing_address IP地址
发送ICP数据报到其它缓存服务器时用的地址默认255.255.255.02多缓存服务器设置选项cache_peer hostname type http_port icp_port options
指定网络中其它的缓存服务器默认为none。
Hostname:另一台缓存服务器的主机名
Type:parent/s ib ling/multicast 父/同级/多播http_p ort:目的服务器的http端口icp_port:目的服务器的ICP端口options:
-p ro xy-o nly:仅去获取数据但不在本地缓存
-o-query:不发送ICP查询给此主机
-default:默认的父服务器
- login username:passwd:连接对方通过服务器用户名和密码
-no-netdb-e xc hange 代理服务器之间彼此不交换信息
- round-rob in 当有多个代理服务器可用时本地代理服务器采用轮转算法cache_p eer_do main 服务器主机名 域名
用来限定查询相邻的缓存服务器的域dead_peer_timeout N seconds
设置Squid在确定父同级缓存服务器不可用之前的等待时间3缓存大小设置选项cache_mem NKB/MB/bytes,默认为bytes
页缓存内存大小cache_swap_low(perce nt,0-100)
缓存对象交换的最低点cache_swap_high(pe rce nt,0-100)
缓存对象交换的最高点maximum_obj e ct_s ize
缓存对象的最大大小minimum_obj ect_s ize
缓存对象的最小大小maximum_obj e ct_s ize_in_me mo ry
在内存中缓存的最大的对象大小ipcache_size 4096:ip对应cache的大小为4096fqdncache_size 4096:fqdncache_size 4096
域名全称cache的大小为4096
4 日志文件路径及C AC HE的目录设置选项memory_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA 内存替换策略heap GDSF:双重大小贪婪法
LRU:默认最近最少使用算法heap LFUDA:最近最不常用被老化法heap LRU:堆LRU cache_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA 缓存替换策略cache_d ir 类型 路径 大小(M) 一级子目录 二级子目录系统使用的存储类型
类型:UFS|AUFS,默认使用UFS AUFS用于非同步的I/O设备实例 cache_dir ufs/usr/local/squid/cache 2500016256cache_access_log/var/log/squid/access.log
页access.log日志文件路径cache_log /var/log/squid/cache.log
缓存日志文件的目录和文件emulate_httpd_log on/off
激活仿真HT TP格式的日志mime_tab le /e tc/s q uid/mi me.c o nf mime文件路径pid_fi le name /var/ran/squid.p id
指定pid文件和路径ftp_user 用户名@域名
指定匿名FTP密码ftp_list_width 数字
指定FTP列表的文件名长度ftp_passive on/off
以被动模式(on)/主动模式(o ff)cache_dns_pro gram /usr/lib/squid/
指定DNS查询程序路径
编译时指定 --disable-internal-dns option dns_c hildre n数字
指定本地默认启动DNS查询进程数dns_nameservers IP地址
DNS服务器地址diskd_pro gram /usr/lib/squid/d iskd
磁盘管理程序unlinkd_pro gram us r/lib/squid/unlinkd
删除文件程序pinger_pro gram /usr/lib/squid/ping程序
编译时指定:--enable-icmp option
页redirect_program none
URL重点向程序red irec t_c hildre n 数字
重点向进程数redirect_rewrites_host_heade on/off
重点向时重写包头用加速器时勿用auth_param类型 pro gram/c hildre n/c rede ntia ls ttl/rea lm 值
用户认证配置选项
5调整Cache的选项request_header_max_s ize 数字(KB)
最大http请求头request_body_max_s ize 数字KB
最大http请求数据内容reply_body_max_size 数字KB
最大返回数据可限制用户下载的数据大小re fere nc数字
LRU算法中指定LRU时间quick_abort_min 数字(KB)
断点续传最小值quick_abort_max 数字(K B)
断点续传最大值quick_abort_p ct 数字(percent)
超过值认为续传成功ne ga t ive_tt l 数字minute s/ho urs/s e c o nds
否定回答TTL po s itive_dns_ttl 数字 minutes/ho urs/seco nds
DNS肯定回答TTL range_o ffse t_lim it 数字 KB/M B/B yte s
请求S QUID预取数据的大小
Dataideas是一家2019年成立的国外VPS主机商,提供基于KVM架构的VPS主机,数据中心在美国得克萨斯州休斯敦,主机分为三个系列:AMD Ryzen系列、Intel Xeon系列、大硬盘系列,同时每个系列又分为共享CPU和独立CPU系列,最低每月1.5美元起。不过需要注意,这家没有主页,你直接访问根域名是空白页的,还好他们的所有套餐支持月付,相对风险较低。下面以Intel Xeon系列共...
便宜的香港vps多少钱?现在国外VPS主机的价格已经很便宜了,美国VPS主机最低一个月只要十几元,但同样免备案的香港VPS价格贵不贵呢?或者说便宜的香港VPS多少钱?香港vps主机价格要比美国机房的贵一些,但比国内的又便宜不少,所以目前情况是同等配置下,美国VPS比香港的便宜,香港VPS比国内(指大陆地区)的便宜。目前,最便宜香港vps低至3元/首月、18元/月起,今天云服务器网(www.yunt...
飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...