squid反向代理(Reverse proxy)
反向代理也同样提供缓存加速,只不过服务的对象反过来了。
传统代理、透明代理大多是为局域网用户访问Internet中的web站点提供缓存代理;
而反向代理相反,主要为internet中的用户访问企业局域网内的web站点提供缓存加速,是一个反向的代理过程,因此称为反向代理。
对于一些访问量较大的web站点(如新浪、搜狐),提供反向代理可以起到良好的加速作用,同时大大缓解web服务器的压力,如:使用nslookup工具解析出站点对应得IP(通常会有多个、这是基于dns介绍的负载分担)
任选其中一个在浏览器中直接访问,会发现squid发现代理服务返回的错误信息,而使用域名访问时,用户基本上感觉不到squid服务的存在。
传统代理、透明代理主要面向局域网用户提供服务,其对访问internet中web站点提供缓存加速,访问目标是不固定的;
而反向代理主要面向internet的客户提供服务,其对访问企业自有的web站点提供缓存加速,访问目标相对比较固定。
使用squid反向代理,后台真正提供web服务的站点可以位于internet,也可以位于企业局域网内,提供web服务的主机可以有一个到多个。
在squid.conf文件中,实现反向代理服务最基本的选项有两处,在http_port后加“vhost”(注意:vhost与transparent不能同时使用)使用cache_peer配置项指定后台真正提供web服务的主机(有时称为上游服务器)的ip地址、端口等。
格式:
添加对反向代理的支持,并在公网ip地址的80端口监听服务
vi /etc/squid/squid.conf
http_port 219.16.21.100:80 vhost
指定web服务器主机位置
cache_peer web服务器地址 服务器类型 http端口 icp端口 [可选项]
web服务器地址:不解释
服务器的类型:对应到目标主机的缓存级别,上游web主机一般使用“parent”
http端口:web服务器web服务的端口如80、8080等icp端口:用于连接相邻的ICP(internet cache protocol)缓存服务器(通常为另外一台squid主机),如果没有,则使用0;可选项:是提供缓存时的一些附加插参数,如:“originserver”表示该服务器作为提供web服务的原始主机,“weight=n”指定服务器的优先权重,n为整数,数字越大优先级越高(默认为1);“max-conn=n”指定方向代理主机到web服务器的最大连接数。
环境描述:
公司使用4台web服务器实现负载均衡,并在前端使用squid做方向代理加速,internet用户直接服务的是squid反向代理服务器(公网ip并做好dns(cdn)解析),通过squid代理服务器间接访问时间的网站服务器。
实现步骤:
1.修改squid.conf配置文件
http_port 80 vhost
cache_peer 192.168.1.11 parent 80 0 originserver weight=5 max-
conn=30
cache_peer 192.168.1.12 parent 80 0 originserver weight=4 max-
conn=15
cache_peer 192.168.1.13 parent 80 0 originserver weight=4 max-
conn=10
cache_peer 192.168.1.15 parent 80 0 originserver weight=1 max-
conn=8
/etc/init.d/squid restart
netstat -utpln |grep 80
2.在internet上客户机端访问,注意使用反向代理服务器的ip地址
并查看代理日志,
tail -f /var/log/squid/access.log