传统正向代理 2

    xiaoxiao2022-07-07  234

    步骤一:构建Web服务器

    1)使用yum安装web软件包

    [root@pc205 ~]# yum  -y  install  httpd

    .. ..

    [root@pc205 ~]# rpm  -q  httpd

    httpd-2.2.15-29.el6_4.x86_64

    2)启用httpd服务,并设为开机自动运行

    [root@pc205 ~]# service  httpd  restart  ;  chkconfig  httpd  on

    Stopping httpd [FAILED]

    Starting httpd [OK]

    httpd服务默认通过TCP 80端口监听客户端请求:

    [root@pc205 ~]# netstat  -anptu  |  grep httpd

    tcp 0 0 :::80 :::* LISTEN 2813/httpd

    3)为Web访问建立测试文件

    在网站根目录/var/www/html下创建一个名为index.html的首页文件:

    [root@pc205 ~]# cat /var/www/html/index.html

    <html>

    <title>Welcome</title>

    <body>

    <h1>hello</h1>

    <h2>hello</h2>

    </body>

    </html>

    步骤二:部署Squid代理服务器

    1)使用yum安装squid软件包:

    [root@svr5 ~]# yum  -y  install  squid

    .. ..

    [root@svr5 ~]# rpm  -q  squid

    squid-3.1.10-19.el6_4.x86_64

    2)修改/etc/squid/squid.conf配置文件:

    [root@svr5 ~]# vim /etc/squid/squid.conf

    .. ..

    http_port 3128 //代理端口

    visible_hostname svr5.tarena.com //设置主机名

    cache_mem 128 MB //内存缓存

    cache_dir ufs /var/spool/squid 200 16 128 //硬盘缓存

    http_access allow localnet //允许本机所在网络中的所主机使用代理服务器

    3)启动squid服务,并设置为开机启动:

    [root@svr5 ~]# service  squid restart; chkconfing squid on

    Stopping squid:                                            [FAILED]

    init_cache_dir /var/spool/squid...

    Starting squid: .                                          [  OK  ]

    4)squid服务默认通过TCP 3128端口监听客户端请求:

    [root@svr5 ~]# netstat  -anptu  |  grep 3128

    tcp 0 0 :::3128 :::* LISTEN 3213/(squid)

    步骤三:客户端测试

    1)为浏览器设置代理服务器

    以Firefox浏览器为例,在命令行输入firefox打开火狐浏览器,点击“Edit(编辑)”菜单,选择“Preferences(属性)”,如图-2所示。

    图-2

    随后再点击“Advanced(高级)“选项卡,找到”Network(网络)“选项卡,点击”Settings(设置)“按钮,如图-3所示。

    -3

    点选”Manual Proxy Configuration“,在HTTP Proxy后输入代理服务器IP地址:192.168.4.5,并在Port后输入3128端口号信息,如图-4所示。

    -4

    2)客户端使用浏览器访问Web服务器

    打开火狐浏览器在地址栏输入http://192.168.4.205,回车查看Web服务器页面信息。

    3)通过日志文件查看效果

    通过查看Squid代理服务器主机的access.log日志,可以查出有一个客户端地址为192.168.4.100的主机,通过代理服务器连接192.168.4.205上的Web服务器。

    通过查看Web服务器上的access_log日志,可以看出代理192.168.4.5在访问Web服务器,而不会显示真实的客户端192.168.4.100的信息。

    [root@svr5 ~]# tailf /var/log/squid/access.log

    1429584868.414      0 192.168.4.100 TCP_MEM_HIT/200 486 GET http://192.168.4.205/ - NONE/- text/html

    [root@svr5 ~]# tailf /var/log/httpd/access_log

    192.168.4.5 - - [20/Apr/2015:19:54:28 -0700] "GET /favicon.ico HTTP/1.1" 404 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"

    反向代理 问题

    通过配置代理服务器,实现以下目标:

    代理服务器可以将远程的Web服务器页面缓存在本地代理服务器端口设置为80端口用户通过访问代理服务器即可获得远程Web服务器上的页面内容远程Web服务器对客户端用户是透明的利用缓存机制提高网站的响应速度 方案

    使用4台RHEL6虚拟机,其中一台作为Squid代理服务器,该服务器用来连接两个网段,因此需要配置两块网卡,地址分别为192.168.4.5和172.16.0.254。一台作为客户端测试主机,IP地址为172.16.0.100。一台Web服务器,地址为192.168.4.205,该Web服务器为其他代理提供Web数据源,拓扑如图-5所示。

    -5

    步骤

    实现此案例需要按照如下步骤进行。

    步骤一:构建web服务器

    1)使用yum安装web软件包

    [root@web ~]# yum  -y  install  httpd

    .. ..

    [root@web ~]# rpm  -q  httpd

    httpd-2.2.15-29.el6_4.x86_64

    2)启用httpd服务,并设为开机自动运行

    [root@web ~]# service  httpd  restart  ;  chkconfig  httpd  on

    Stopping httpd [FAILED]

    Starting httpd [OK]

    httpd服务默认通过TCP 80端口监听客户端请求:

    [root@web ~]# netstat  -anptu  |  grep httpd

    tcp 0 0 :::80 :::* LISTEN 2813/httpd

    3)为Web访问建立测试文件

    在网站根目录/var/www/html下创建一个名为index.html的首页文件:

    [root@web ~]# cat /var/www/html/index.html

    <html>

    <title>Welcome</title>

    <body>

    <h1>www.tarena.com</h1>

    </body>

    </html>

    步骤二:部署Squid代理服务器

    1)使用yum安装squid软件包:

    [root@svr5 ~]# yum  -y  install  squid

    .. ..

    [root@svr5 ~]# rpm  -q  squid

    squid-3.1.10-19.el6_4.x86_64

    2)修改/etc/squid/squid.conf配置文件:

    [root@svr5 ~]# vim /etc/squid/squid.conf

    .. ..

    http_port 80 vhost //设置反向代理

    visible_hostname svr5.tarena.com //设置主机名

    cache_peer  172.16.16.254  parent 80   0  originserver

    cache_mem 128 MB //内存缓存

    cache_dir ufs /var/spool/squid 200 16 128 //硬盘缓存

    http_access allow localnet //允许本机所在网络中的所有主机使用代理服务器

    3)启动squid服务,并设置为开机启动:

    [root@svr5 ~]# service  squid restart; chkconfing squid on

    Stopping squid:                                            [FAILED]

    init_cache_dir /var/spool/squid...

    Starting squid: .                                          [  OK  ]

    4)squid服务通过TCP 80端口监听客户端请求:

    [root@svr5 ~]# netstat  -anptu  |  grep 80

    tcp 0 0 :::80 :::* LISTEN 3213/(squid)

    步骤三:客户端测试

    通过/etc/hosts文件,配置域名解析,将域名解析为Squid服务器IP地址

    [root@client ~]# cat /etc/hosts

    .. ..

    172.16.0.254 www.tarena.com

    2)客户端开启浏览器,分别访问两个不同的域名站点

    [root@client ~]# firefox http://www.tarena.com

    ACL访问控制 问题

    沿用练习一,编写并应用ACL策略,实现以下要求:

    允许网段192.168.4.0/24在周一到周五的09:30至18:00通过代理访问外网IP地址是192.168.4.205的主机在任何时间都不可以通过代理访问外网 方案

    通过acl指令定义ACL访问控制权限。

    通过http_access应用ACL访问控制列表。

    http_access策略及规则顺序:

    http_access根据访问控制列表允许或禁止某一类用户访问代理服务器;http_access规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束;访问列表可以由多条规则组成;如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则相反;http_access通过allow来定义允许规则;http_access通过deny来定义拒绝规则。 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:配置Squid访问控制列表

    1)修改配置文件

    [root@svr5 ~]# vim /etc/squid/squid.conf

    .. ..

    acl  Work_Hours  time MTWHF  09:30-18:00 //定义工作时间

    acl  LAN1  src  192.168.4.0/24 //定义网段

    acl  PC1 src  192.168.4.205/24 //定义主机

    #http_access allow localnet //注释该行

    http_access deny PC1 //应用ACL规则,允许主机

    http_access allow LAN1 Work_Hours //应用ACL规则允许该网段内的主机在工作时间使用代理服务器

    http_access deny all //拒绝所有

    2)重启squid服务

    [root@svr5 ~]# service  squid restart

    Stopping squid:                                            [  OK  ]

    Starting squid: .                                          [  OK  ]

    步骤二:客户端测试

    通过修改客户端IP地址,分别验证能否在合适的时间内使用代理服务器。

    使用Varnish加速Web 问题

    通过配置Varnish缓存服务器,实现如下目标:

    使用Varnish加速后端Apache Web服务使用varnishadm管理缓存页面使用varnishstat查看Varnish状态 方案

    通过源码编译安装Varnish缓存服务器

    编译安装Varnish软件复制启动脚本与配置文件

    修改配置文件,缓存代理源Web服务器,实现Web加速功能

    使用3台RHEL6虚拟机,其中一台作为Web服务器(192.168.4.205)、一台作为Varnish代理服务器(192.168.4.5),另外一台作为测试用的Linux客户机(192.168.4.100),如图-6所示。

    -6

    对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html。

     

    步骤

    实现此案例需要按照如下步骤进行。

    步骤一:构建Web服务器

    1)使用yum安装web软件包

    [root@pc205 ~]# yum  -y  install  httpd

    .. ..

    [root@pc205 ~]# rpm  -q  httpd

    httpd-2.2.15-29.el6_4.x86_64

    2)启用httpd服务,并设为开机自动运行

    [root@pc205 ~]# service  httpd  restart  ;  chkconfig  httpd  on

    Stopping httpd [FAILED]

    Starting httpd [OK]

    httpd服务默认通过TCP 80端口监听客户端请求:

    [root@pc205 ~]# netstat  -anptu  |  grep httpd

    tcp 0 0 :::80 :::* LISTEN 2813/httpd

    3)为Web访问建立测试文件

    在网站根目录/var/www/html下创建一个名为index.html的首页文件:

    [root@pc205 ~]# cat /var/www/html/index.html

    <html>

    <title>Welcome</title>

    <body>

    <h1>hello</h1>

    <h2>hello</h2>

    </body>

    </html>

    步骤二:部署Varnish缓存服务器

    1)编译安装软件

    [root@svr5 ~]# yum -y install readline-devel pcre-devel //安装软件依赖包

    [root@svr5 ~]# useradd -s /sbin/nologin varnish //创建账户

    [root@svr5 ~]# tar -xzf varnish-3.0.6.tar.gz

    [root@svr5 ~]# cd varnish-3.0.6

    [root@svr5 varnish-3.0.6]# ./configure --prefix=/usr/local/varnish

    [root@svr5 varnish-3.0.6]# make && make install

    2)复制启动脚本及配置文件

    [root@svr5 varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish

    [root@svr5 varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish

    [root@svr5 varnish-3.0.6]# cp redhat/varnish_reload_vcl /usr/bin/

    [root@svr5 varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

    3)修改Varnish文件

    [root@svr5 ~]# vim /etc/sysconfig/varnish

    VARNISH_VCL_CONF=/etc/varnish/default.vcl #vcl文件路径

    VARNISH_LISTEN_PORT=80 #默认端口

    VARNISH_SECRET_FILE=/etc/varnish/secret #密钥文件

    VARNISH_STORAGE_SIZE=64M #缓存大小

    VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"    #基于内存方式

    4)修改代理配置文件

    [root@svr5 ~]# mkdir /etc/varnish

    [root@svr5 ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/

    [root@svr5 ~]# uuidgen > /etc/varnish/secret

    [root@svr5 ~]# vim  /etc/varnish/default.vcl

    backend default {

         .host = "192.168.4.205";

         .port = "80";

     }

    [root@svr5 ~]# service  varnish  start

    步骤三:客户端测试

    1)通过/etc/hosts文件,配置域名解析,将域名解析为Squid服务器IP地址

    [root@client ~]# cat /etc/hosts

    .. ..

    192.168.4.5 www.tarena.com

    2)客户端开启浏览器,分别访问两个不同的域名站点

    [root@client ~]# firefox http://www.tarena.co

    最新回复(0)