系统原理分析架构-五-squid(反代理即web缓存服务器)

怎甘沉沦 提交于 2019-12-05 14:35:52

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!

如有转载,请保留源作者博客信息。

Better Me的博客blog.csdn.net/tantexian

如需交流,欢迎大家博客留言。


反向代理的概念

关于代理服务器分类更多详情,请参考博文:系统原理分析架构-三--代理服务器简介及分类

反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB 服

务器的内容缓存器。


反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。


Squid 反向代理的实现原理

目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间。下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。




搭建squid web缓存服务器


1、实验环境(由于机器有限,都在单机上面实验)

centos 6.5 X64 mini版 

squid服务器: ip 192.168.10.20

web服务器:ip 192.168.10.21

所有机器配置为16G内存


2、配置web服务器(node21):

测试方便,关闭selinux、关闭iptables


一下都采用默认,不做配置即可。

# vim /etc/httpd/conf/httpd.conf 

httpd监听端口:


DocumentRoot:网页存放的路径,文档的根目录


重启httpd

# service httpd rstart


页面访问httpd:




修改显示内容:

# vim /var/www/html/index.html

I' node21...


再次访问:


3、配置squid反向代理(node20):

# yum install squid


# vim /etc/squid/squid.conf


配置文件修改后使之生效:

squid -k parse
squid -k reconfigure
/etc/init.d/squid restart 或reload



附上重点配置截图:

配置生效:

squid -k reconfigure

访问192.168.10.20(被squid代理到node21上去了):


测试squid反向代理成功。


接下来测试真实场景下的squid代理openstack web:

已经存在的openstack访问地址为:http://192.168.10.138/manager/instances/


再用node20的squid做反向代理:

附上重要配置文件:

配置生效:

squid -k reconfigure


访问20(20的ip方向请求的内容为138内容)


查看:X-Cache-Lookup:参数HIT from node20:80(缓存命中)




查看缓存命中率:(squidclient 自行安装

squidclient -p 80 mgr:info



查看squid缓存了哪些内容:


讲解完毕。



最后附上squid的一些参考文章:

squid配置-cache_peer和cache_peer_domain详


详细解析用Squid实现反向代理的方法(一台多台)


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!