课程设计论文基于linux的Squid代理服务器的架设.doc

上传人:sccc 文档编号:4868778 上传时间:2023-05-20 格式:DOC 页数:25 大小:597.01KB
返回 下载 相关 举报
课程设计论文基于linux的Squid代理服务器的架设.doc_第1页
第1页 / 共25页
课程设计论文基于linux的Squid代理服务器的架设.doc_第2页
第2页 / 共25页
课程设计论文基于linux的Squid代理服务器的架设.doc_第3页
第3页 / 共25页
课程设计论文基于linux的Squid代理服务器的架设.doc_第4页
第4页 / 共25页
课程设计论文基于linux的Squid代理服务器的架设.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《课程设计论文基于linux的Squid代理服务器的架设.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于linux的Squid代理服务器的架设.doc(25页珍藏版)》请在三一办公上搜索。

1、 基于linux的Squid代理服务器的架设 第25页 共25页1 引言1.1课题背景Linux是由芬兰人Linus Torvalds开发,并在1991年10月5日正式对外发布。由于具有结构清晰、功能简捷等特点,许多高等院校的学生和科研机构的研究人员纷纷把它作为学习和研究的对象。Linux操作系统称得上是UNIX的克隆版本,和UNIX操作系统有许多相似之处。自其诞生后,借助于Internet网络,在全世界计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在继续增加。Linux在中国发展时间比较短,人才积累非常少,国内Linux人才缺口逐渐的凸显已成为其

2、产业发展的瓶颈。Linux发展的关键是应用的普及,但国内Linux方面的专业人才稀少,且国内的专业人才远远不如Windows系统下的雄厚不论是数量还是质量都远远不及。Linux无限的应用前景和企业Linux人才的匮乏形成鲜明对比。据有关权威部门统计:将来几年内我国软件行业的从业机会十分庞大,中国每年对软件人才的需求将达到50万人左右,而对于Linux 专业人才的就业前景,更是广阔。现在的用人单位对高素质的软件工程师的需求可以用 “ 如饥似渴 ”来形容,用人单位中多是银行的 IT 部门、政府部门和跨国 IT 企业等,而且越是上规模的公司,工作的拆分层次越清晰,对于Linux人才的需要越大。目前,

3、众多中小企业的服务器应用及办公系统也在逐步向Linux方向移植1。据开放系统世界2003年第八期介绍,中国五年内Linux人才需求量将会超过120万,而“1+1+1”工程的实施,也是间接地告诉我们这个问题的严重性。 因此,在我国培养linux的专业人员显得极其重要。1.2 课程设计的目的Squid是一个高性能的代理缓存服务器,它支持FTP、GOPHER和HTTP协议,支持SSL和访问控制,它是用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户请求。它是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记,是连接Internet(广域网)与In

4、tranet(局域网)的桥梁。它能加快内部网访问Internet的速度,提高客户机的访问命中率。本课程设计主要是在Linux操作系统下完成Squid代理服务器的架设,通过对Squid代理服务器的架设,我们不但能了解其详细的工作原理,也能熟悉Linux的相应操作,深化了Linux及网络知识的学习。2 Squid代理服务器的介绍2.1 squid代理服务器的简介所谓代理服务器,就是代表内部私有网络中的客户,去请求Internet网中的资源,并将响应的数据返回给客户机的服务器。它能够让多台没有公有IP地址的主机使用其代理功能访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理

5、服务器识别并由代理服务器代为向外请求资源并保存在本机缓存中,客户端通过访问代理服务器的缓存实现访问请求。代理服务器是内部网络和ISP(Internet服务商)之间的中介,它可以提供文件缓存、地址过滤、网络监控等功能,并且可以转发网络信息,对转发信息进行控制2。squid是开源软件,性能优秀,响应速度快,降低了网络的拥塞率,可以针对特定的的网站、用户、网络、数据类型实施访问控制,安全性高。Squid代理服务器可以分为:普通代理服务器、透明代理服务器、反向代理服务器。普通代理服务器能够缓存静态的网页到到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理

6、服务器那里获取请求数据而不再向原web站点请求数据。透明代理就是客户端不知道有代理服务器的存在,当然也不需要进行任何与代理有关的设置,从而大大方便了系统管理员。反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图2.1所示。 图2.1 反向代理服务器结构图2.1代理服务器的工作原理客户端A向代理服务器提出访问Internet的请求,代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息。如果缓

7、存中存在客户端A需要的信息,则将信息传送给客户端。如果不存在,代理服务器就代替客户端向Internet上的主机请求指定的信息。 Internet上的主机将代理服务器的请求信息发送到代理服务器中,同时代理服务会将信息存入缓存中。代理服务器将Internet上主机的回应信息传送给客户端A。 客户端B向代理服务器提出相同的请求。代理服务器也首先与访问控制列表中的访问规则相对照。 如果满足规则,则将缓存中的信息传送给客户端B3。其工作模式图如下图2.2所示。如图2.2 代理服务器工作模式图3 Squid 的安装和配置3.1 Squid的安装下载稳定版squid-3.2.0.6.tar.bz2,用以下命

8、令解开压缩包: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#./configure#make#make install3.2 Squid的配置(1)Network Options(网络设置选项)http_port 端口号监听客户请求的端口,默认

9、3128icp_port 端口号 和其它squid发送和接收ICP查询时监听的端口,0表示禁止mcast_groups IP地址指定一个多播组,可以接收多播形式的ICP查询htcp_prot 端口号同其它相邻的缓存服务器之间发送和接收HTCP查询时监听的端口,0:禁用tcp_outgoing_address IP地址用于采用HTCP和CARP方式同其它服务器通信,默认255.255.255.255udp_incoming_address IP地址接收其它缓存服务器的ICP数据报时使用的地址,默认0.0.0.0udp_outgoing_address IP地址发送ICP数据报到其它缓存服务器时用

10、的地址,默认255.255.255.0(2)多缓存服务器设置选项cache_peer hostname type http_port icp_port options指定网络中其它的缓存服务器,默认为none。Hostname:另一台缓存服务器的主机名Type: parent/sibling /multicast(父/同级/多播)http_port:目的服务器的http端口icp_port:目的服务器的ICP端口options: - proxy-only:仅去获取数据,但不在本地缓存- o-query: 不发送ICP查询给此主机- default:默认的父服务器- login username

11、:passwd:连接对方通过服务器用户名和密码- no-netdb-exchange 代理服务器之间彼此不交换信息- round-robin 当有多个代理服务器可用时,本地代理服务器采用轮转算法cache_peer_domain 服务器主机名 域名用来限定查询相邻的缓存服务器的域dead_peer_timeout N seconds设置Squid在确定父(同)级缓存服务器不可用之前的等待时间(3)缓存大小设置选项cache_mem N(KB/MB/bytes,默认为bytes)缓存内存大小cache_swap_low(percent,0-100)缓存对象交换的最低点cache_swap_hig

12、h(percent,0-100)缓存对象交换的最高点maximum_object_size缓存对象的最大大小minimum_object_size缓存对象的最小大小maximum_object_size_in_memory在内存中缓存的最大的对象大小ipcache_size 4096:ip对应cache的大小为4096fqdncache_size 4096:fqdncache_size 4096域名全称cache的大小为4096 (4)日志文件路径及CACHE的目录设置选项memory_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA内存

13、替换策略heap GDSF:双重大小贪婪法LRU:默认,最近最少使用算法heap LFUDA:最近最不常用被老化法heap LRU:堆LRUcache_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA缓存替换策略cache_dir 类型 路径 大小(M) 一级子目录 二级子目录系统使用的存储类型类型: UFS|AUFS,默认使用UFS,AUFS用于非同步的I/O设备实例:cache_dir ufs /usr/local/squid/cache 25000 16 256 cache_access_log /var/log/squid/acc

14、ess.logaccess.log日志文件路径cache_log /var/log/squid/cache.log缓存日志文件的目录和文件emulate_httpd_log on/off激活仿真HTTP格式的日志mime_table /etc/squid/mime.confmime文件路径pid_filename /var/ran/squid.pid指定pid文件和路径ftp_user 用户名域名指定匿名FTP密码ftp_list_width 数字 指定FTP列表的文件名长度ftp_passive on/off以被动模式(on)/主动模式(off)cache_dns_program /usr/

15、lib/squid/指定DNS查询程序路径编译时指定:-disable-internal-dns optiondns_children 数字指定本地默认启动DNS查询进程数dns_nameservers IP地址DNS服务器地址diskd_program /usr/lib/squid/diskd磁盘管理程序unlinkd_program usr/lib/squid/unlinkd删除文件程序pinger_program /usr/lib/squid/ping程序编译时指定:-enable-icmp optionredirect_program noneURL重点向程序redirect_chil

16、dren 数字重点向进程数redirect_rewrites_host_heade on/off 重点向时重写包头(用加速器时勿用)auth_param 类型 program/children/credentialsttl/realm 值用户认证配置选项(5)调整Cache的选项request_header_max_size 数字(KB)最大http请求头request_body_max_size 数字(KB)最大http请求数据内容reply_body_max_size 数字(KB)最大返回数据,可限制用户下载的数据大小reference_age 数字LRU算法中指定LRU时间quick_a

17、bort_min 数字(KB)断点续传最小值quick_abort_max 数字(KB)断点续传最大值quick_abort_pct 数字(percent)超过值认为续传成功negative_ttl 数字 minutes/hours/seconds否定回答TTLpositive_dns_ttl 数字 minutes/hours/secondsDNS肯定回答TTLrange_offset_limit 数字 KB/MB/Bytes请求SQUID预取数据的大小(6)定义超时的选项connect_timeout:SQUID等待客户请求的服务器回应的时间长度peer_connect_timeout:一个

18、对等的缓存服务器的TCP连接超时时间client_lifetime:客户端同代理服务器TCP连接的最大时间长度read_timeout:读入数据超时request_timeout:客户端请求最大时间shutdown_lifetime:关闭squid缓存时间(7)定义访问控制的选项acl:定义一个访问列表格式:acl aclname acltype string类型:(acltype)src:源地址dst:目标地址srcdomain:原(客户)名称dstdomain:目标名称time:时间(M星期一、T星期二、W星期三、H星期四、F星期五、A星期六、S星期天)url_regex-i:URL中的正

19、则表达式匹配urlpath_regex-i:略去协议和主机名的正则表达式proxy_auth:通过外部程序进行用户验证maxconn:单IP最大连接数port:端口myip:本地IPsrcdom_regex -i:匹配客户名dstdom_regex -i:匹配目标名myport:我的端口proto:协议,http,ftp.method:方法, GET POSTbrowser:匹配User-Agent headerarp:匹配指定的MAC地址proxy_auth username:指定合法用户,用REQUIRED表示所有合法用户http_access:代理访问控制格式:http_access a

20、llow|deny ! acl_nameicp_access:icp访问控制格式:icp_access allow|deny !acl_namecache_peer_access:其它缓存服务器访问控制格式:cache_peer_access cache_host allow|deny !acl_name(8)管理员参数选cache_mgr mail地址:管理员电子邮件cache_effective_user 用户名:运行身份cache_effective_group 组名:运行组身份(9)CACHE注册服务选项announce_period 数字:发布缓存通告频率announce_host

21、主机名:通告的主机announce_file 文件名:通告的信息announce_port 端口号:通告的对方端口(10) HTTPD加速选项httpd_accel_host 主机名/vitual:加速某服务器访问httpd_accel_port 端口号:加速服务器的对方端口httpd_accel_single_host on/off:多台服务器时设置offhttpd_accel_with_proxy on/off:即作为加速器,又作为WEB缓存服务器,设置为onhttpd_accel_uses_host_header on/off:为on,能支持不同的http协议(11)杂项logfile_

22、rotate 0-9:日志轮换版本数append_domain 域名:默认域名tcp_recv_bufsize 数字(KB):TCP缓存区大小err_html_text 字符串:包含在错误消息中的文本deny_info:禁用时显示消息格式:deny_info err_page_name aclvisible_hostname 主机名错误消息中显示的服务器名称error_directory 路径:指定错误消息文件目录54普通代理服务器的配置 4.1 安装和配置(1)安装squidtar xvfj squid-3.2.0.6.STABLE.tar.bz2(2)配置squid.conf文件 #vi

23、/etc/squid/squid.confhttp_port 3128 icp_port 3130#缓存目录的设置,可以设置多个缓存目录,语法为: cache_dir ufs /var/spool/squid 4096 16 256#下面是关于日志文件的放置目录与文件名 cache_access_log /var/log/squid/access.logcache_log /var/log/squid/cache.logcache_store_log /var/log/squid/store.logpid_filename /var/run/squid.pid#关闭认证机制#auth_para

24、m basic children 5#auth_param basic realm Squii proxy-caching web server#auth_param basic credentialsttl 2 hours#设置squid用户及用户组、管理员账号cache_effective_user squidcache_effective_group squidcache_mgr youraccountyour.e.mail# 与内存有关的配置cache_mem 128 MB#与磁盘容量有关的配置cache_swap_low 90cache_swap_high 95maximum_obj

25、ect_size 4096 KB#与内存保存资料有关的配置maximum_object_size_in_memory 8 KB#定义acl(访问控制列表), 语法为:acl acl All src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl alhost src 127.0.0.1/255.255.255.255acl to_localhost dst 127.0.0.1 /8 acl SSL_ports 443 563 acl safe_portsport 80acl safe_portsport 21acl safe_portsport

26、 443 563acl safe_portsport 70acl safe_portsport 210acl safe_portsport 1025-65535acl safe_portsport 280acl safe_portsport 488acl safe_portsport 591acl safe_portsport 777acl CONNECT method CONNECT #利用前面定义的acl,定义访问控制规则http_access allow Manager Localhost http_access deny Manager http_access deny !Safe_p

27、orts http_access deny CONNECT !SSL_ports http_access deny All#定义与其它代理服务器的关系,语法: cache_peer parent 3128 3130 proxy-only#设置与其它代理服务器的关系: # #cache_peer_access allow asexample#cache_peer_access deny allcoredump_dir /var/spool/squid54.2 激活squid(1)在开启squid之前,检查配置文件是否正确6,如下图4.1所示,运行如下命令即可:# squid -k parse 图

28、4.1 配置文件检查图(2)初始化cache目录.即建立缓存目录的存储格式6# squid zX(3)启动squid服务6,如下图4.2所示。# service squid start 图4.2 squid 启动图(4)代理服务器的测试 在测试之前,我们先得的网络搭建好7,局域网的设置如下图4.3和4.4所示。 图4.3 局域网的设置图 图4.4 局域网的设置图然后在IE浏览器里输入路径:进行测试,测试如图4.5所示。图4.5服务器测试图(5)停止squid,如下图4.6所示。# squid -k shutdown 图4.6squid的关闭图4.3 访问控制示例(1)禁止访问某个网站在squi

29、d配置文件中添加以下acl名称及访问规则,并重新加载配置acl sina dst 58.63.236.26http_access deny sina(2)禁止在某些时段访问acl Working_hours MTWHF 08:00-17:00http_access allow Working_hourshttp_access deny !Working_hours(3)禁止某个代理客户建立过多连接 acl OverConnLimit maxconn 4 http_access deny OverConnLimit5透明代理服务器的配置5.1 安装和配置(1)安装squidtar xvfj sq

30、uid-3.2.0.6.STABLE.tar.bz2(2)配置squid.conf文件 #vi etc/squid/squid.conf http_port 192.168.16.1:8080cache_mem 128 MBcache_dir ufs /var/spool/squid 4096 16 256cache_effective_user squidcache_effective_group squiddns_nameservers 202.102.192.68cache_access_log /var/log/squid/access.logcache_log /var/log/sq

31、uid/cache.logcache_store_log /var/log/squid/store.logvisible_hostname 192.168.1.123cache_mgr mian122httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header onacl all src 192.168.1.0/255.255.255.0http_access allow all5(3)初始化squid服务 #squid zx(4)检测squid的配置文件6,如图

32、5.1所示。 #squid -k parse 图5.1 配置文件检查图(5)启动squid服务,如图5.2所示。 #service squid start 图5.2 squid启动图(6)iptable的配置#iptables -t nat -A PREROUTING -i eth0 -p tcp m tcp -dport 80 -j REDIRECT -to-ports 80805.2 配置客户端首先搭建网络环境8,设置如下图5.3所示。 图5.3 网络环境配置图默认网关为以下默认地址,如下图5.4所示。图5.4 默认网关地址图 然后在IE浏览器里输入路径:210.43.188.41进行测试

33、,测试如图5.5所示。 图5.5 测试图6反向代理服务器6.1 安装和配置(1)安装squidtar xvfj squid-3.2.0.6.STABLE.tar.bz2(2)配置squid.conf文件http_port 8000cache_mem 128 MBcache_dir ufs /var/spool/squid 4096 16 256cache_effective_user squidcache_effective_group squiddns_nameservers 58.20.127.238cache_access_log /var/log/squid/cache.logcach

34、e_store_log /var/log/squid/store.logvisible_hostname cache_mgr mian122http_port 80 # squid监听的端口httpd_accel_host localhost # 内部WEB服务器的IP地址httpd_accel_port 81 # WEB服务器的IP地址httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器httpd_accel_with_proxy on #httpd_accel_uses_host_header off5(3)初始化squid服务 #squid zx(4

35、)检测squid配置文件6,如图6.1所示。 #squid -k parse 图6.1 配置文件检查图(5)启动squid服务 #service squid start,其操作如下图6.2所示。 图6.2 squid启动图6.2反向代理的工作原理(1)设置设置反响代理需要的域名解析192.168.2.111192.168.2.111(2)设置反向代理所的DNS入口信息INA58.20.127.238INA58.20.127.2386.3 服务器的测试 在测试之前,我们先得的网络搭建好7,局域网的设置如下图6.3所示。图6.3 局域网设置图然后在IE浏览器里输入路径:进行测试,测试如图6.4所示

36、。 图6.4测试图7课程设计总结通过网络系统课程设计,使我对Linux操作系统有了一定的了解,同时我也总结出了一些分析问题和解决问题的方法及技巧。进一步加深了对squid服务器配置等相关知识的了解,可以说是受益颇丰。在此次网络课程设计中,重在于熟悉Linux,在Linux下能配置squid代理服务器,虽然简单,但力求能学到各项基本知识,掌握好Linux、squid等相关知识。总的来说,这次的课程设计,提高了我的实际动手能力,同时也提高了我独立思考问题的能力。当然我这次的收获少不了同学和老师的功劳。如果没有他们的帮助,我不可能在这么短的时间有如此大的提高,在次,我特别要感谢我的指导老师罗永红,他

37、在平时的时候教会了我们很多Linux的知识,让我们对Linux的知识有了更深刻的认识,增加了我们对linux的学习兴趣。正所谓兴趣是成功的老师,正是因为有了这份兴趣,我才有勇气和信心将这个课程设计做完。虽然课程设计结束了,但我知道,我对linux的了解只是冰山一角,在以后的课外时间里,我还是会继续去学习linux的相关知识,争取对linux有一个更深层次的了解。参考文献1刘兵Linux实用教程M.北京:中国水利水电出版社,2004.2林天峰.Linux服务器的架设指南M.北京:清华大学出版社,2010.3顾云苏Linux 服务器配置与优化M.北京:清华大学出版社,2001. 4李洋,汪虎松. Red Hat Linux 9系统与网络管理教程M.北京:电子工业出版社,2006.5朱居正,高冰. Red Hat Linux 9实用培训教程M.北京:清华大学出版社,2004.6文东戈,孙昌立,王旭.Linux操作系统实用教程M.北京:清华大学出版社,2010.7刘晓辉.网络服务器的搭建与管理(第2版)M.北京:电子工业出版社,2009.8高衡绪,古静雨. Linux系统及网络理论与实践教程M.北京:中国建材工业出版社,2004.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号