
squid缓存服务器
squid(鱿鱼)--代理服务器,支持http/ftp
1.WEB加速
2.访问控制
3.提高安全性,隐藏内网
4.翻墙(GWF)
支持的代理模式有3种:
1.正向代理forward
是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
2.反向代理(reverseproxy)
正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
3.透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了
clients(192.168.0.0/24)-->squid(192.168.0.16:3128)

squid缓存服务器
做一个缓存DNS
#yum -y install bind bind-chroot
listen-on port 53 { 127.0.0.1; 192.168.0.253; };
allow-query { localhost; any; };
dnssec-enable yes;
#service named start
#chkconfig named on
+++++++++++++++
1.安装
# yum -y install squid
/etc/logrotate.d/squid
/etc/pam.d/squid
/etc/rc.d/init.d/squid--启动脚本
/usr/sbin/squid
/var/log/squid --日志
/var/spool/squid--缓存目录
/etc/squid --配置文件的目录
/etc/squid/squid.conf--主配置文件
# cat /etc/squid/squid.conf |grep -v '#'|grep -v ^$
acl all src 0.0.0.0/0.0.0.0 --定义源地址变量:all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow all
http_port 3128 --监听端口
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid--访问日志
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /var/spool/squid
更改默认配置:
# vim /etc/squid/squid.conf
http_port 3128
visible_hostname mail.baidu.com --定义squid的主机名
cache_mem 167 MB--定义缓存使用物理内存的大小,一般是物理内存的1/3
cache_dir ufs /var/spool/squid 1000 16 256 --缓存保存在硬盘中的位置
acl mynetwork src 192.168.0.0/255.255.255.0 --定义本地网络
http_access allow mynetwork --允许本地网络的主机访问squid
#启动squid
# service squid start
启动 squid:. [确定]
# netstat -tnlp|grep :3128
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 8768/(squid)
透明代理
安装squid
yum -y install squid
配置squid (vim /etc/squid/squid.conf)
----------------
http_port 3128 transparent
--transparent表启用透明代理
cache_dir ufs /var/spool/squid 1000 16 256
--1000表最大容量1000M,16是指squid目录下的一级目录为16个
--256是指16个目录下分别有256个子文件目录
cache_mem 200 MB
--建议给内存的三分之一左右
----------------
设置数据流定向
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
--即,当192.168.0.0/24网段的用户从eth0的80端口访问本机时
--系统重定向到3128端口,而用户不知道端口已转换。
=======================================================================
反向代理
原理:
192.168.0.20(lan)
webserver<-->squid<-->internet
192.168.0.1 192.168.1.20(wan)
在192.168.0.1(webserver)端的配置
是堡垒主机,即真实服务器,
192.168.1.20 是代理主机,面向客户
其通过squid转接到真实机上,然后回复请求
以下是在堡垒主机上操作(0.1)
vim /etc/hosts
添加:
--------------
192.168.0.1www.abc.comwww.bcd.com
--------------
--为了域名能快速解析
添加设置两个虚拟主机
yum -y install httpd
vim /etc/httpd/conf/httpd.conf
---------------
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/www.abc.com
ServerName www.abc.com
ErrorLog logs/www.abc.com-error_log
CustomLog logs/www.abc.com-access_log combined
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/www.bcd.com
ServerName www.bcd.com
ErrorLog logs/www.bcd.com-error_log
CustomLog logs/www.bcd.com-access_log combined
</VirtualHost>
---------------
service httpd restart
以下在代理主机上操作
在192.168.1.20上注册两个域名
yum -y install bind caching-nameserver
vim /etc/named.conf
---------------
ptions {
listen-on port 53 { 127.0.0.1; any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; any; };
allow-query-cache { localhost; any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
---------------
vim /etc/named.rfc1912.zones
--添加:
---------------
zone "abc.com" IN {
type master;
file "abc.com.zone";
allow-update { none; };
};
zone "bcd.com" IN {
type master;
file "bcd.com.zone";
allow-update { none; };
};
---------------
cd /var/named
cp -a localdomain.zone abc.com.zone
vim abc.com.zone
---------------
$TTL 86400
@ IN SOA dns.abc.com. root.abc.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns.abc.com.
dns IN A 192.168.1.20
www IN A 192.168.1.20
---------------
注意:dns 和 www 对应的主机IP都为代理主机IP
cp -a abc.com.zone bcd.com.zone
vim bcd.com.zone
--只需要把abc.com.zone里的abc.com改为bcd.com即可
service named restart
配置squid 实现反向代理
vim /etc/squid/squid.conf
---------------
http_port 80 vhost vport
cache_peer 192.168.0.1 parent 80 0 originserver name=abc
cache_peer 192.168.0.1 parent 80 0 originserver name=bcd
cache_peer_domain abc www.abc.com
cache_peer_domain bcd www.bcd.com
http_access allow all
---------------
cache_peer中,192.168.0.1为真实机(堡垒)的IP
name=abc 其中的abc为任意取的,但对应cache_peer_domain中的abc
cache_peer_domain中 www.abc.com 为真实机中定义的域名
| 留言与评论(共有 0 条评论) |