squid缓存代理服务

squid:缓存代理服务
常见使用方式:
1、配置代理http服务,做到在服务器内可直接访问国外机器,避免下载访问国外服务器慢的情况;
2、某台机器无法访问外网,通过设置代理方式访问外网;
3、需要调用第三方服务,第三方服务需要白名单,白名单又有个数限制;我们机器IP多到无法再加入白名单的时候或者担心增加机器后忘记增加白名单

squid支持的代理方式:
1、标准代理
2、透明代理
3、反向代理

详解代理的工作方式:
1、标准代理
是指当网络内部有一台或多台机器无法上网时,通过设置http代理实现上网,即将http的出口先指向squid服务器,squid接受对外的请求后会先请求的结果缓存到自己身上,然后再将结果返回给客户端,;客户端想再一次访问相同的请求时,squid就将缓存的资源直接返回给客户端(当然缓存功能需配置)
2、透明代理
透明代理的工作方式和标准代理类似,只是将自己做为其他内网机器的网关,内网机器无需自己指定代理服务信息,代理服务器将所有内网的http出口流量截流由自己发出,然后再缓存发给客户端
3、反向代理
是指将客户端请求发送给后端多台服务器处理,处理后再通过反向代理服务器返回给客户端;和标准代理,透明代理完全不同

下面是标准代理的配置:
安装squid
Centos yum install squid
ubuntu apt-get install squid
编译安装squid
下载包
tar zxf squid.tar.gz
cd squid
./configure –enable-ssl
遇到报错
ld:cannot find lssl
usr/bin/ld: cannot find -lcrypt
解决报错的方法:
apt-get update
apt-get install libssl-dev -y
继续编译安装
make && make install

配置文件squid.conf
如果只是达到简单使用的目的,只需要做下面的操作
#http_access allow localnet #禁用这行
http_access allow all #添加或打开注释这行
增加以下两行
request_header_access X-Forwarded-For deny all #隐藏客户端请求的IP
ignore_expect_100 on #看官网应该是忽略请求头超过100的意思,但是还不是太明白,后续必须搞明白

做完后就可以打开启动squid使用了
启动前先需要初始化squid,执行
squid -z

初始化没问题后,就可以启动squid了,执行
squid -f /etc/squid.conf(squid.conf所在目录)

启动后没报错后即可在客户端执行
export http_proxy=http://squidserverIP:PORT
即可使用squid代理服务

注:以上配置方式没加缓存功能,只是做了代理功能

参考:http://weihaoxuan.blog.51cto.com/8698172/1419990

发表评论