squid反向代理(Reverse proxy)

反向代理也同样提供缓存加速,
只不过服务的对象反过来了。
传统代理、透明代理大多是为局域网用户访问Internet中的web站点提供缓

存代理;
而反向代理相反,
主要为internet中的用户访问企业局域网内的web站点提供缓存加速,
是一个反向的代理过程,因此称为反向代理。

对于一些访问量较大的web站点(如新浪、搜狐),
提供反向代理可以起到良好的加速作用,
同时大大缓解web服务器的压力,
如:使用nslookup工具解析出www.sohu.com站点对应得IP(通常会有多个

、这是基于dns介绍的负载分担)
任选其中一个在浏览器中直接访问,
会发现squid发现代理服务返回的错误信息,
而使用www.sohu.com域名访问时,
用户基本上感觉不到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