squid 软件既可以做代理,也可以做实现缓存加速,大大降低服务器的I/O.。

1.其中squid代理分为三种,正向代理、透明代理、反向代理。

(1)squid正向代理和squid透明代理都位客户端:内网IP不直接访问公网IP上网,而需借助squid正向或者透明代理实现上网,这样可以缓解ip资源,常见的有正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样可以节省网络带宽资源

节省上网的带宽)

(2)squid反向代理:外网IP(公网IP)要访问内网IP服务器资源的时候,不能直接访问。(因为三层网络当中,所有来源IP和目的IP必须的公网IP,否则路由器的话,私有IP携带的数据将被丢去)。这时通过squid做反向代理,来实现简介访问私有IP发布的网站。把私有web服务器资源给外网(称为服务器发布)。反向代理用来搭建网站静态项(图片、html、流媒体、js、css等)的缓存服务器,它用于网站架构中。

2.squid正向代理、squid透明代理、squid反向代理:

squid 正向代理:对客户端有要求,用户要上网,需要在浏览器里面设置代理IP:PORT

squid 透明代理:浏览器里面不需要设置代理IP:PORT;客户端的网关设置为代理IP ,通过iptables实现redirect

squid 反向向代理: 客户端不做要求(公网)

3 .squid 三种代理的搭建

yum install -y squid
squid -v  查看版本以及编译参数
> /etc/squid/squid.conf # 清空原有的配置文件

(1)正向代理

(1.1)vim /etc/squid/squid.conf  配置文件如下:

http_port 3128
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 8080         # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
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 localnet
http_access allow localhost
http_access allow all
cache_dir aufs /data/cache 1024 16 256
cache_mem 128 MB
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern \.(jpg|png|gif|mp3|xml) 1440    50%     2880    ignore-reload
refresh_pattern .               0       20%     4320

# 缓存设置
cache_mem 256 MB
maximum_object_size_in_memory 2 MB
#缓存内容大小控制,当cache目录被占用到97%时,内容将被清空20%
cache_swap_low 80
cache_swap_high 97

(1.2)

mkdir  /data/cache  #创建缓存目录
chown -R squid:squid /data/cache  #更改权限
squid -z  #初始化缓存目录,该步骤可以省略
/etc/init.d/squid start
squid  -kcheck #可以检测配置文件是否有错
squid -k rec #可以重新加载配置
service squid restart #重启squid服务

测试:curl -xlocalhost:3128 www.qq.com
访问图片,测试缓存: curl -xlocalhost:3128   -I 'http://www.aminglinux.com/bbs/static/image/common/logo.png'

也可以在windows浏览器里设置代理IP:3128  然后访问网站

(2 )透明代理:实现条件

(2.1)因为之前学习过LAMP环境,所以这里打算用这个环境.用到三台机器(全部是虚拟机VMware)

pc-local: 桥接,eth0,192.168.1.251       内网

pc-Gateway: eth0 ,NAT ,192.168.176.253    这台机器上安装squid    启动3128 进行透明代理

eth1,桥接,192.168.1.250

pc-web : eth0,NAT,192.168.176.252    外网,这个机器上安装的apche(88)服务,nginx(80)服务,其中nginx只代理动态php,其余走apache

设置:其中pc-local的网关设定为192.168.1.250(就是pc-Gatway的eth1地址)

(2.2)vim /etc/squid/squid.conf

将上面的配置文件

http_port 3128  修改 http_port 192.168.1.250:3128 transparent

重启启动squid  或者squid –k  reconfigure

(2.3) 然后iptables 将在pc-local上发送的web80请求重新指到3128端口

iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.250  -p tcp --dport 80 -j REDIRECT --to-ports 3128

这样实现透明代理,不需要还在客户端设置。

(2.4) 在pc-local 192.168.1.251机器上测试 curl  http://192.168.176.252/forum.php –I

(3) 反向代理:

(1)机器条件可以不变

但是有一个地方需要改变:就是local的网站不要设置成eth1地址,也可以不设置 只要和eth1同网段即可。

(2)配置文件

http_port 3128 修改为 http_port 3128 accel vhost vport

cache_peer 192.168.1.252 parent 88 0 originserver name=a    #这里因为192.168.176.252的apache开启的88,nginx(80)也做了一层代理

其中192.168.1.252 是要被代理的原始的提供web服务的地址

cache_peer_domain a bbs.chinaops.com

(3) 在pc-local 192.168.1.251机器上测试 curl  http://192.168.176.252/forum.php –I

实验参考博客:http://fengzhilinux.blog.51cto.com/1343279/284375

其中squid代理实现:http://jaseywang.me/2011/01/21/squid-%E5%8F%8D%E5%90%91%E4%BB

squid 三种代理实验的更多相关文章

  1. Java的三种代理模式

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  2. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  3. 理解java的三种代理模式

    代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class ...

  4. java 的三种代理

    java的三种代理模式   1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作, ...

  5. Java的三种代理模式(Spring动态代理对象)

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  6. Java的三种代理模式&完整源码分析

    Java的三种代理模式&完整源码分析 参考资料: 博客园-Java的三种代理模式 简书-JDK动态代理-超详细源码分析 [博客园-WeakCache缓存的实现机制](https://www.c ...

  7. 分享知识-快乐自己:三种代理(静态、JDK、CGlib 代理)

    1):代理模式(静态代理)点我下载三种模式源码 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理. 静态代理由 业务实现类.业务代理类 两部分组成 ...

  8. 详解 Java 中的三种代理模式

    代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用 ...

  9. Java三种代理模式:静态代理、动态代理和cglib代理

    一.代理模式介绍 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能. 简言之,代理模式就是 ...

随机推荐

  1. PHP文件信息获取函数

    知识点: basename():获取文件名,传入第二个参数则只显示文件名,不显示后缀 dirname():获取文件路径 pathinfo():将文件信息存入一个数组,通过索引basename,dirn ...

  2. 存储 磁盘大于2TB 大数据存储一个盘 解决方法

    1.vmware虚拟机环境下可以做裸映射 但是一个存储 只能对应一个虚拟主机裸映射 我已经在一个10TB的存储上做好多个主机,就不适用了 2.在虚拟机上添加5个2TB磁盘,磁盘管理中新建 带区卷 可以 ...

  3. vs 2012 未能找到与约束contractName Microsoft.VisualStudio.Utilities...匹配的导出

    系统自动更新后,打开项目进行维护时,居然出错了,报的错误信息为“未能找到与约束contractName Microsoft.VisualStudio.Utilities...匹配的导出” 上网查了下, ...

  4. 多线程 线程组 ThreadGroup

    package org.zln.thread; import java.util.Date; /** * Created by sherry on 000024/6/24 22:30. */ publ ...

  5. BZOJ 1912:[Apio2010]patrol 巡逻(树直径)

    1912: [Apio2010]patrol 巡逻 Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ ...

  6. P4712 「生物」能量流动

    由于题面$markdown$格式,博主太懒不想一个一个改,所以题面见此:戳 Solution: 本题的贪心思路比较有意思,完全考读题... 首先,因为总的能量来源是$a[0]$,所以可以理解为总能量守 ...

  7. 架构-UML类图

    在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML Distilled: A Brief Guide to the Standard O ...

  8. BZOJ3236 [Ahoi2013]作业 【莫队 + 树状数组】

    题目链接 BZOJ3236 题解 没想到这题真的是如此暴力 #include<algorithm> #include<iostream> #include<cstring ...

  9. linux下源代码分析和阅读工具比较

    Windows下的源码阅读工具Souce Insight凭借着其易用性和多种编程语言的支持,无疑是这个领域的“带头大哥”.Linux/UNIX环境下呢?似乎仍然是处于百花齐放,各有千秋的春秋战国时代, ...

  10. 《R语言实战》读书笔记 第七章--基本统计分析

    在导入数据并且将数据进行组织和初步可视化以后,需要对数据进行分布探索和两两关系分析等.主要内容有描述性统计分析.频数表和列联表.相关系数和协方差.t检验.非参数统计. 7.1描述性统计分析 7.1.1 ...