博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Squid搭建反向代理提高网站访问速度
阅读量:7207 次
发布时间:2019-06-29

本文共 2673 字,大约阅读时间需要 8 分钟。

反向代理简述:

反向代理服务器有两种传输模式:

1.同步模式:(如:squid)用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完成前这个连接是一直存在的。

2.异步模式:(如:nginx)用户发起的请求会发送到nginx,nginx接收到所有的数据后在转发到后端的服务器,后端服务器处理完成后把数据返回给nginx,nginx在返回给用户。

由此可见如果用户发起的请求的数据比较大,或者用户端的网速比较慢,同步模式时后端服务器的连接数相对于异步模式会比较多,压力也比较大。

客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。

工作拓扑:

配置环境:

两台系统均为:CentOS6.3

squid 192.168.0.202

web 192.168.0.203

DNS :host代替(squid.test.com 192.168.0.202)

一、安装squid

下载:http://www.squid-cache.org/Versions/v3/3.3/

1
2
3
4
5
6
7
yum 
install 
-y gcc gcc-c++ 
make 
perl perl-devel  
#安装依赖包
tar 
zxvf squid-3.3.0.3.
tar
.gz
.
/configure 
--prefix=
/usr/local/squid
make 
&& 
make 
install
groupadd squid
useradd 
-g squid -s 
/sbin/nologin 
squid
chown 
-R squid 
/usr/local/squid/var/logs/ 
/usr/local/squid/var/cache/

二、配置squid反向代理

清除默认配置,添加自定义的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vi 
/usr/local/squid/etc/squid
.conf
cache_effective_user squid
cache_effective_group squid
visible_hostname squid.
test
.com 
#设置主机名
http_port 80 accel vhost vport 
#配置squid加速模式
icp_port 3130
#cache_peer squid2.test.com sibling 80 3130 #此项为配置多个squid时配置,配置 squid2 为其邻居,当 squid1 在其缓存中没有找到请求的资源时,通过 ICP 查询去其邻居中取得缓存
cache_peer 192.168.0.203 parent 80 0 no-query originserver round-robin name=web1
cache_peer 192.168.0.204 parent 80 0 no-query originserver round-robin name=web2
#squid1 的两个父节点,originserver 参数指明是源服务器, round-robin 参数指明 squid 通过轮询方式将请求分发到其中一台父节点; squid 同时会对这些父节点的健康状态进行检查,如果父节点 down 了,那么 squid 会从剩余的 origin 服务器中抓取数据,round-robin表示使用通过 RR 轮询方式转发到两个父节点中的一个
cache_peer_domain web1 web2 squid.
test
.com 
#允许web1、web2、squid.test.com请求
acl localnet src 192.168.0.202 
#指定ip访问
http_access allow all  
#允许所有人使用该代理.因为这里是代理加速web服务器
icp_access allow localnet  
#允许从邻居服务器缓冲内发送和接收ICP请求
cache_log 
/usr/local/squid/var/logs/cache
.log
access_log 
/usr/local/squid/var/logs/access
.log squid
cache_dir ufs 
/usr/local/squid/var/cache/ 
1000 16 256 
#高速缓存目录 ufs 类型使用的缓冲值最大允许1000MB空间,32个一级目录,256个二级目录
maximum_object_size 10240 KB 
#能缓存的最大对象为 10M
maximum_object_size_in_memory 512 KB 
#内存中缓存的最大对象 512K
cache_mem 256 MB  
#squid 用于缓存的内存量

三、维护命令

1
2
3
4
5
/usr/local/squid/sbin/squid 
-s   
#启动squid
/usr/local/squid/sbin/squid 
–k parse 
#检查squid配置文件是否正确
/usr/local/squid/sbin/squid 
–N -z  
#生成缓存目录
/usr/local/squid/sbin/squid 
-k shudown或
/usr/local/squid/sbin/squid 
-k 
kill 
#关闭squid
echo 
"/usr/local/squid/sbin/squid -s " 
>>
/etc/rc
.
local  
#设置开机启动

测试:

访问192.168.0.202即可访问到web的页面!

配置多台squid时,配置内容只修改visible_hostname。

转载地址:http://vacum.baihongyu.com/

你可能感兴趣的文章
从海淘到跨境电商 海外网购正呈现多样化、专业化、细分化
查看>>
SQL SERVER 2005学习心得
查看>>
龙岗客家民俗博物馆观光游
查看>>
11G Oracle RAC添加新表空间时数据文件误放置到本地文件系统的修正
查看>>
UIScrollView滚动
查看>>
项目管理
查看>>
awk
查看>>
SED
查看>>
ARP地址解析协议<一>——地址解析
查看>>
相似图片搜索的原理
查看>>
linux下安装FTP(vsftpd)
查看>>
nagios监控配置
查看>>
<c:forEach> 用法
查看>>
10分钟让你明白MySQL是如何利用索引的
查看>>
正则表达式收集
查看>>
The Log(我所读过的最好的一篇分布式技术文章)
查看>>
我的友情链接
查看>>
jQuery的选择器(四)
查看>>
我的友情链接
查看>>
使用firefox和selenium模拟点击js获取更多评论
查看>>