Squid是一种在Linux系统下使用的优秀的代理服务器软件,很多时候都用到它。代理性能也很棒。
开始吧:
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)
以上就是三种代理方式,只是把主要用到的东西写上去,大体框架就是这些。
上面配置都是写上去的,难免有错误。如有什么错误,及改正请给予留言。