设为首页 收藏本站
查看: 885|回复: 0

[经验分享] 服务器架构之性能扩展

[复制链接]

尚未签到

发表于 2018-12-28 07:06:31 | 显示全部楼层 |阅读模式
  第三章Squid代理服务器
3.1 Squid代理简介
代理技术是让代理服务器直接访问外部网络,然后将结果传给内部网络,代理服务器主要工作在应用层。Nat技术也可以实现代理访问,它是通过路由功能完成源地址与目的地址的转换,完成访问,主要工作在数据链路层/网络层和传输层等底层。
Nat的优点:工作在底层,透明代理,限制较少。缺点:地址转换技术,源地址和目标地址暴露,容易造成内部网络被***。
Squid代理服务器:可以完全做到内部外部分离,可以保障内部安全。缺点:完成的服务功能比较少,并且服务需要支持设置代理ip和端口功能。

3.1.1 Squid代理可以实现的功能:
1、提供对HTTP和FTP协议的代理服务
2、缓存代理的内容,提高客户端访问网站的速度,并且能够节约出口网络流量
3、对客户端地址进行访问控制,限制允许访问squid服务器的客户机
4、对目标地址进行访问控制,限制客户端允许访问的网站
5、根据时间进行访问控制,限定客户端可以使用代理服务的时间
3.1.2 缓存代理作用:
通过代理服务器访问外部网站,开启缓存池,缓存了部分的静态页面,如果下一个客户再来访问,代理服务器会去真是服务器核实页面是否更新了,然后决定是否更新缓存池,然后返回给客户。如果是全新页面,代理服务器会去真实服务器读取数据返回给客户。

3.2 Squid代理服务的种类
普通代理服务
即标准的,传统的代理服务;需要客户在浏览器中指定代理服务器的地址和端口,一般是为了实现员工访问外部网络的需要。
透明代理服务器
适用于企业的网关主机,客户端不需要指定服务器的地址和端口,通过iptables将客户的web请求交给代理服务器,减少了内部员工设置上的麻烦
反向代理服务
方向代理是实现外网访问内网的一种访问技术
3.3 安装squid服务
Rpm –qa|grep squid         //查看软件包是否安装
  Yum install squid*           //yum安装squid

Vi /etc/squid/squid.conf       //修改配置文件,我们需要先删除原配置文件,在新建一个配置文件,不会发生误删,因为配置文件默认有两份一个是squid.conf和squid.conf.default

Service squid start         //启动squid服务,它会在/var/spool/squid/目录下,自动生成目录,16个一级目录,每个一级目录256个二级目录。

可以看到3128端口

Squid –k reconfig          //修改配置文件,不重启也可以动态加载
3.4 ACL访问控制原理
ACL(Access Control List),访问控制列表。是用来实现客户机的IP地址和请求的url/文件类型、访问时间、并发请求数进行限制的一种技术支持
它需要先定义然后指定限制类型,是拒绝还是允许。
格式:acl 列表名称 列表类型 列表内容   //定义列表
      http_access allow或deny 列表名      //限制列表
例如:acl all src 0.0.0.0/0.0.0.0
      http_access deny all
首先定义一个名叫all的acl语句,它的内容为所有类型的源地址,类型为拒绝。
常用的ACL列表类型

例如:
acl lan src 192.1681.10.1/24
http_access deny lan     //拒绝源地址为192.168.10.0这个子网的ip
acl block_domain dstdomain .qq.com.kaixin001.com
  http_access deny block_domain   //拒绝目标域名为qq等的访问
acl work_hour time MTWHF 08:30-17:30
http_access allow work_hour //允许访问的时间段,周一到周五时间段
acl realfile urlpath_regex –I \.rmvb$ \.rm$
http_access deny realfile //禁止这种文件类型的访问,-i忽略大小写
访问控制类型的匹配顺序
没有规则时:拒绝所有客户端的访问请求
有规则但找不到匹配项时:将采用与最后一条相反的权限
3.5 squid代理的实现
实验一:配置squid普通代理
内网客户机IP:192.168.10.2
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:200.168.10.2

  1、          配置网卡
内网用vm1,squid服务器需要拥有两块网卡,内网连载vm1,外网vm2上,web server服务器的连接vm2网卡。分别配置ip和掩码。
Ping测试: //内网可到192.168.10.1,squid server可以通左右


  2、          修改squid配置文件
Vi /etc/squid/squid.conf

首先配置文件设定服务的端口和ip,visible_hostname设置出问题的联系地址,innet定义来自这个网段的ip都可以,all定义来自所有的ip,reply设置允许资源大小10MB,设置规则允许innet列表, all为禁止列表。
3、配置web server,启动web服务,定义主页内容

4.测试,当没有指定代理时无法访问到外部web server,通过浏览器右边的设置按钮-》internet选项-》局域网设置-》输入ip和端口,确定



再次访问外部web serve

Squid会生成一些日志文件在/var/log/squid/目录下,其中Squid.out错误日志,store.log访问日志,cache.log缓存日志


  Cat /varlog/httpd/access_log    //查看日志,看到代理服务器的ip

实验二:配置squid透明代理
内网客户机IP:192.168.10.2
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:200.168.10.2

  1、          配置实验环境,ping通。这里内部的pc机需要制定网关192.168.10.1才行。
2、修改配置文件,Transparent是透明的意思,开启透明。

  3、增加iptables规则。“iptables –t nat –A PREROUTING –I eth0 –s 192.168.10.0、24 –p tcp –dport 80 –j REDIRECT –to 3128”
Iptables规则解析:-t使用地址转换技术,-A prerouting是通过这条链,-i eth0进入的接口,-s来自的源,-p tcp协议,-dport目的端口,-j重定向 --to重定向到3128端口。
总的意思就是通过地址转换技术,通过prerouting通道,对于来自eth0的访客,源地址是192.168.10.0的子网的ip,访问目的端口是80的服务,我们重定向到3128端口,交给squid来代理。

4、测试。直接测试即可,不需要配置客户端。

实验三:配置squid反向代理
外部客户机IP:200.168.10.2
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:192.168.10.2

  1、          配置网络环境,并可以ping通。这一次squid服务器外网使用vm1网卡,内网使用vm2网卡,web server使用vm2网卡。
  2、          修改squid配置文件。
因为我们squid代理服务器没开启80端口,我们先虚拟一个80端口,这样外部的访问才不会被拒 绝。它内部服务可以实现集群的功能。并且squid服务器对于外网应该都是allow。

3、测试,访问代理服务器200.168.10.1,自动定向到内部的服务器。

实验四:配置squid反向代理虚拟主机
外部客户机IP:200.168.10.2
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:192.168.10.2
虚拟主机,就是一个web server架设多个域名的网站,实现一机多用。
  1、          配置网络环境,可以ping通。
  2、          修改squid配置文件。
配置文件,我们分别制定两个目的,指定网站名之后,并且允许所有外部ip的访问。

  3、          配置虚拟主机
Vi /usr/local/apache/etc/httpd.conf 修改配置文件,然后到各自的网站目录建立不同的主页文件。

  4、          修改pc机的hosts文件。
  file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image054.giffile:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image054.giffile:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image054.giffile:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image054.gif


  5、          访问测试,即可达到不同的域名访问到不同的网站。
总结:
我们可以通过tree 00(目录名)来查看某个缓存池里的缓存情况,可以查看到都是静态内容。Squid功能不仅有代理还有集群功能,所以越来越受到欢迎。






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656616-1-1.html 上篇帖子: 分析squid日志的脚本 下篇帖子: [Squid] 如何提高命中率
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表