squid代理服务器及其配置

suid      代理服务器
       提供文件缓存 地址过滤等服务 加速内部主机访问 internet 的速度
       节省 web 流量 提高性能 代理加速
       缓存:不是所有的东西都可以缓存
       ICP : Internet 缓存协议:实现多个缓存之间共享资源   udp 3130 端口
       缓存之间:父子关系 兄弟关系
       缓存中有请求内容: hit
       缓存丢失: miss  没缓存到内容
       代理类型:
              proxy SNAT 代理工具 Squid Varnish ATS ,Nginx
              reverse proxy :反向代理 DNAT
              CDN :多台 squid web 服务器组成   内容分发网络
              智能 CDN
 
              www.cache.org 网站
软件:     squid-2.6.STABLE6
默认监听端口:     tcp  端口 3128
配置文件: /etc/squid/squid.conf
服务脚本: /etc/init.d/squid
日志文件: /var/log/squid/access.log
主程序: /usr/sbin/squid
      
       squid 配置: yum install squid
              vim /etc/squid/squid.conf
              http_port 3128              监听端口
              cache_mem 64M          代理监听使用的内存
              maximum_object_size   最大缓存对象
              rely_body_max_size 1024000 allow all 单个最大文件大小为 1M, 单位为字节 0 表示不限制
              access_log /var/log/squid/access.log 日志文件位置
              visible_hostname 可见主机名 squid 在错误页面显示的服务器名字
              cache_dir ufs 使用系统 /var/spool/squid 100 大小 16 一级缓存目录多少 256 二级缓存目录多少 缓存目录
             
              squid 两块网卡 eth0 桥接 192.168.0.34
                              eth1 host-only  192.168.10.2/24
              client eth0 host-only 192.168.10.3/24
              编辑 squid:
                           vim /etc/squid/squid.conf
                               http_port 192.168.10.2:3128
                               cache_mem  128 MB
                               visible_hostname proxy.a.com 添加
                               cache_dir 1024 16 256
                               http_access allow all
                               error_directory  /usr/share/squid/errors/Simplify_Chinese 返回信息中文
                            squid -k parse 检查语法
                            squid -K reconfig 重读一下配置文件
                            squid -z 初始化缓存
                            ls /var/spool/squid/
                            service squid restart
                            netstat ntlp | grep 3128
                            route add default gw 192.168.0.254
                  client:
                            route add default gw 192.168.10.2
                            http://www/redhat.com
                            设置浏览器 edit-- prefence--network--setting-- 》设定代理服务器
 
squid acl 访问控制功能:
 
              格式:     acl   all_name      acl_type   values
                     http_access  allow|deny  all_name
             
              acl 类型:      
                     src 基于源地址控制
                            acl LAN src 192.168.10.0/24 
                            acl LAN src 192.168.100.0/24
                                   acl 定义名字一样去并集
                                       192.168.1.25-192.168.1.55 具体主机范围
                                   http_access  allow|deny  LAN
                     dst 基于目标地址控制
                     port 基于端口控制
                     myip squid 的自身的 ip 控制
                     srcdomain    源域名控制   基于客户端
                            acl domain srcdomain  .baidu.com  也可以是 ip
                     dstdomain    目标域名控制
                            acl DU  dstdomain  *.baidu.com
                            http_access deny LAN DU 拒绝 LAN 范围的网络访问百度
                            http_access  deny DU 所有的都不可以访问百度
                     time   基于时间
                            acl  WTIME  time  MTWHF 09:00-12:00  时间结束时间大于开始时间
                            http_access deny LAN WTIME  拒绝 LAN 在周一到周五的 9 12 点访问
                     maxconn    最大连接数
                            acl someuser  maxconn 5
                            http_access deny LAN someuser  LAN 用户访问链接最多为 5
                            http_access allow !someuser 低于 5 个允许
                     url_regex   url 列表 匹配独步路径
                            acl BAI  url_regex  -i  ^http://image.baidu.com/  不区分大小写
                            http_access deny  LAN  BAI  不能访问百度的图片链接
                            acl BAI url_regex  -i ^.*tp://.*\.iso$ 
                            http_access  allow LAN !BAI 拒绝访问以 iso 结尾的文件
                     urlpath_regex   url 路径   匹配部分路径
                            acl LAN time
                     arp     基于源 mac 地址作控制的
                            acl LAN arp 11:12:13:14:15:16
                     browser 基于浏览器控制的
代理服务器的透明代理: Transparent Proxy
                     不应用户手动指定代理地址和 port 来做转换
                     访问重定向 www.dohu.com:80--->192.168.10.3:3128
              透明代理配置:
                     服务器端: eth1 192.168.10.2 eth0 192.168.0.65
                     vim /etc/squid/squid.conf
                        http_port 192.168.10.2:8080 transparent
                     squid -k parse
                     squid -k reconfig
                     iptables -t nat -A PREROUTING -I eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT -to-port 8080
                    
                     iptables -L -n -t nat
              客户端配置: eth0  192.168.10.3
                     浏览器取消 squid 代理配置
                     route add default gw 192.168.10.2
              服务端: squid 不支持 DNS 解析
                     解决方法: 1 、内部 DNS 服务器
                                2 DNS 请求做 SNAT
                                   打开路由转发功能 proc/sys/net/ipv4/ip_forwards  1
                                   vim /etc/resole.conf  192.168.0.254 DNS 服务器
                                   iptables -t NAT -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.0.65
                             
             
反向代理: squid 只代理有限的服务器   客户端很可能是外网   squid web server 在同一网络
              一台 squid 多台 web server  虚拟主机 vhost   
             
              服务端配置: squid 一台有虚拟主机的 web server
                          eth0 192.168.0.65 内网   eth1 192.168.10.2  外网
                     vim   /etc/squid/squid.conf
                        http_port 192.168.10.2:80 vhost ( 指定 vhost 就为允许缓存 )
                        cache_peer 192.168.0.254   parent 80  0     originserver    weight=1 max-conn=1000
                            (web 服务器 ip 或对等兄弟 squid)   (icp)  本身为真正的 web 服务器
                            weight 表示的为比例
                     重建缓存 rm -rf /var/spool/squid/*
                                service squid stop
                                squid -z
                                squid -k  parse
                     检查 acl iptables 清空
                           
              客户端配置   eth0 192.168.10.3 
                     测试: http://192.168.10.2
              web 服务器: eth0 192.168.0.254
      
       通过 DNAT 做代理:
              服务器端: service squid  stop
                     iptables -t nat PREROUTING -d 192.168.10.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.254
              web 服务器:
                     route add -net 192.168.10.0/24 gw 192.168.0.65
                     route -n
       压力测试:比较两种方式 DNAT 和反向代理孰好孰坏
                在服务器端编译安装 http_load
                     tar zxvf  http_load-12mar2006
                     cd http_load-12mar2006
                     make install
                     vim url  填写 192.168.0.254 的网页链接
                        http://192.168.10.2
                       http://192.168.10.2/workstaion.cfg
                        http://192.168.10.2/vserver.cfg
                        http://192.168.10.2/a2.cfg      
                     http_load -parallel 200  -fetchs 1000 url
                     测试 DNAT squid 两种方式
                    
             
squid 不能同时反向代理和透明代理                      
                           
 
 
                           
                           

你可能感兴趣的:(职场,反向代理,squid,休闲,透明代理)