squid 三种代理方式

Squid是一种在Linux系统下使用的优秀的代理服务器软件,很多时候都用到它。代理性能也很棒。

官方:www.squid-cache.org

开始吧:

by:key1088

squid代理分为三种

1.传统代理

2.透明代理

3.反向代理(web加速)

 

下面一一简单讲解,也便于自己以后记忆,网上很多教程都是过时的,建议还是去官方看看权威的。

 

squid在那?官方下载。

我用的是squid-3.0.STABLE25

tar xvf squid-3.0.STABLE25.tar.gz

cd squid-3.0.STABLE25

./configure --prefix=/usr/local/squid  --enable-linux-tproxy --enable-linux-netfilter --localstatedit=/cache

make

make install

1.传统代理

客户端浏览器 修改代理端口

http_port 3128  

2.透明代理

要使用透明代理,编译的时候必须添加--enable-linux-tproxy --enable-linux-netfilter

图:
   192.168.2.0             192.168.20.0
clent ----->eth0-[linux]-eth1-------

透明代理就是用防火墙把访问80的数据重定向到squid代理端口上面

iptables 端口转发只能在nat上面设置

所以我们要使用SNAT

客户端设置:

网关:squid服务器的ip

DNS:正常DNS

服务器:

首先开启透明模式

http_port 3128 transparent

echo 1 > /proc/sys/net/ipv4/ip_forward

用iptables开启NAT转换,现在客户端就能上网了。

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to 192.168.20.128

端口转发80-->3128

iptables -t nat -A PREROUTING -s 192.168.2.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

3.反向代理(web加速)

用squid 为web服务器( apache nginx lighttpd)提供加速

写主要的配置

一个站点的时候:

cache_peer 127.0.0.1 patent 80 0 no-query originserver
http_port 192.168.2.1:80  accel defaultsite=192.168.2.1

 

apache:

listen 127.0.0.1:80                #这样和192.168.2.1:80不冲突

如果是其他的web server。监听127.0.0.1就可以

同服务器多个站点

Virtual Host :

acl our_sites dstdomain www.shoujizt.com wap.shoujizt.com

cache_peer_access myAccel allow our_sites
cache_peer_access myAccel deny all
cache_peer 127.0.0.1 parent 80 0 no-query originserver name=myAccel login=PASS

http_port 192.168.2.1:80 accel vhost

更多的反向代理配置详细请看

http://wiki.squid-cache.org/ConfigExamples  Reverse Proxy (Acceleration)

以上就是三种代理方式,只是把主要用到的东西写上去,大体框架就是这些。

上面配置都是写上去的,难免有错误。如有什么错误,及改正请给予留言。