案例1、反向代理

     目标:

1、代理服务器可以将远程的Web服务器页面缓存于本地

2、代理服务器端口设置为80端口

3、用户通过访问代理服务器即可获得远程Web服务器页面上的内容

4、远程Web服务器对客户端用户是透明的

5、利用缓存机制提高网站响应速度

     方案:

使用3台RHEL7虚拟机,一台作为Squid代理服务器,需要配置两个网卡(连接不同网段),地址分别为192.168.4.5、192.168.2.5。一台作为客户端测试主机,IP地址为192.168.4.100。一台作为Web服务器,IP地址为192.168.2.100,该服务器为代理服务器提供Web服务数据源。

IP配置&网络拓扑结构如下:

     步骤:

创建3台虚拟机--->3台虚拟机分别为Client(客户端)、Proxy(代理服务器)、Web1(服务器)--->3台虚拟机分别配置IP、搭建yum仓库、设置自动挂载、修改登录密码(简化密码)

Web服务器的搭建:

yum安装httpd,提供Web服务:  yum -y install httpd

启动httpd服务,设置开机自启:  systemctrl restart httpd;systemctrl enable httpd

查看端口号80的状态(httpd默认通过80端口提供服务):  netstat -antpu |grep 80

创建Web服务器测试文件:echo “Hello the world”  > /var/www/html/index.html

Squid代理服务器的部署:

yum安装Squid,提供代理服务:  yum -y install Squid

1>修改配置文件/etc/squid/squid.conf       :set nu 设置行号

...........

56 http_access allow all       允许本机所有主机使用代理服务器

59 http_port 80 vhost         设置反向代理,端口号80

60 visible_hostname www.sina.com     设置主机名,默认没有该行,需要手动添加,主机名可以自行设置

61 cache_peer 192.168.2.11 parent 80 0 originserver    定义后端真实服务器信息,80是httpd端口号,0本来是要icmp端口号,这里不用,但为保持格式必须写0

64 cache_dir ufs /var/spool/squid 100 16 256      取消注释使生效,硬盘缓存,缓存为100M,自动创建16个1级子目录和256个2级子目录

2>启动Squid服务、设置为开机启动:systemctrl restart squid; ystemctrl enable squid

3>查看端口号80状态查看服务是否启动,squid服务默认是通过TCP 80端口侦听客户端请求:  netstat -antpu |grep 80

客户端测试:

[root@客户端 ~]# curl http://192.168.4.5      访问代理服务器地址页面,测试是否成功搭建了squid代理服务器

[root@客户端 ~]# curl -I http://192.168.4.5     可以查看页面详细信息,如果不是第一次访问,会显示HIT缓存命中,如果是第一次访问,会显示MISS没有缓存,但下次再访问就会命中

案例2、使用Varnish加速Web

     目标:

1、使用Varnish加速后端的Apache Web服务

2、使用Varnishadm命令管理缓存页面

3、使用Varnishstat命令查看Varnish状态

     方案:

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

1、编译安装Varnish软件

2、复制启动脚本与配置文件

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

使用3台RHEL7虚拟机,其中一台作为Web服务器(192.168.2.100)、一台作为Varnish代理服务器(192.168.4.5,192.168.2.5),另外一台作为测试用的Linux客户机(192.168.2.100)

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

     步骤:

创建3台虚拟机--->3台虚拟机分别为Client(客户端)、Proxy(代理服务器)、Web1(服务器)--->3台虚拟机分别配置IP、搭建yum仓库、设置自动挂载、修改登录密码(简化密码)

Web服务器的搭建:

yum安装httpd,提供Web服务:  yum -y install httpd

启动httpd服务,设置开机自启:  systemctrl restart httpd;systemctrl enable httpd

查看端口号80的状态(httpd默认通过80端口提供服务):  netstat -antpu |grep 80

创建Web服务器测试文件:echo “Hello the world”  > /var/www/html/index.html

Varnish代理服务器的部署:

scp lnmp_soft-2017-03-28.tar.gz 给proxy

tar -xf lnmp_soft-2017-03-28.tar.gz

cd lnmp_soft

./install_lnmp.sh [选7回车]      ----->开始安装Varnish

配置文件:

/etc/sysconfig/varnish       [前端客户端访问端配置文件]

/etc/varnish/default.vcl      [后端服务端提供端配置文件]

前端文件:(黑色为改正后的文件,青色为原参考文件)

66 VARNISH_LISTEN_PORT=80      #VARNISH侦听端口号80

89 VARNISH_STORAGE_SIZE=64M     #后面更改了缓存储存在内存里,储存在内存里,可以加快响应速度,这里适当将缓存大小调整,依据内存大小来定

92 VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"   #将缓存该为内存存储

69 VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1     #本机循环IP地址

70 VARNISH_ADMIN_LISTEN_PORT=6082        #本机管理员端口号

85 VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin    #VARNISH缓存为文件格式时缓存位置,位与硬盘上

89 VARNISH_STORAGE_SIZE=1G     #VARNISH为文件格式存储在硬盘上时,默认缓存大小为1G

92 VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"    #VARNISH定义为文件格式储存,缓存在硬盘上

后端文件:(设置行号,对应行去掉注释,使生效)

7  backend default {

8      .host = "192.168.2.100";   #更改Web服务器的地址

9      .port = "80";       #更改侦听端口号

10  }       #去掉注释,使得格式完整

注意:一个端口不能同时被两个程序使用

之前squid服务占用了80端口,

squid   端口80

# systemctl stop squid.service    关闭squid

# /etc/init.d/varnish start    启动varnish服务,varnish不受systemctrl 控制,需要/etc/init.d调用该服务。注意脚本是写在RHEL6环境下的,这里会Done死在这里,ctrl + c 退出,不影响启动

# netstat -natpu|grep 80   过滤端口80,看看时否启动

客户端测试:

[root@客户端 ~]# curl http://192.168.4.5      访问代理服务器地址页面,测试是否成功搭建了squid代理服务器

[root@客户端 ~]# curl -I http://192.168.4.5     可以查看页面详细信息,如果不是第一次访问,会显示HIT缓存命中,如果是第一次访问,会显示MISS没有缓存,但下次再访问就会命中

缓存过期:

client------->proxy(AA)---------->web1(AB)       当web1页面更改后,proxy代理服务器不一定及时能更新过来,需要等待或者手动清除缓存

[root@Proxy ~]# varnishadm  -h   查看命令帮助

[root@Proxy ~]# vim /etc/sysconfig/varnish   进入配置文件查看密码存放位置

[root@Proxy ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082   #进入管理员模式

varnish>help

varnish> storage.list   查看缓存

varnish> backend.list   查看后端

varnish> ban.url .*  清理掉所有的html文件,正则表达式

[root@Proxy ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 ban.url *.html    非交互式清理缓存,及时清理

补充:

程序QQ[硬盘]      program

进程[内存]            process

线程                     thread

脚本:install_lnmp.sh

153        ./configure --prefix=/usr/local/nginx --with-http_ssl_module  设置安装目录文件位置

varnish的日志文件位置:root用户家目录下面

varnishlog          varnish日志

varnishncsa       访问varnish代理服务器日志

高级运维(一):反向代理&使用Varnish加速Web的更多相关文章

  1. 二十二. 安装部署Tomcat服务器、使用Tomcat部署虚拟主机、使用Varnish加速Web

    web proxy web1 web2   1.安装部署Tomcat服务器 web1 1.1 使用RPM安装JDK环境 ]# yum -y install java-1.8.0-openjdk ]# ...

  2. 十、使用Varnish加速Web

    使用Varnish加速Web 构建Web服务器(web1) [root@web1 ~]# yum  -y  install  httpd [root@web1 ~]# systemctl start ...

  3. 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理

    一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...

  4. Linux高级运维 第八章 部署docker容器虚拟化平台

    8.1  Docker概述 实验环境: CENTOS7.4-63 64位 Dcoker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到 ...

  5. 轻量级别的Cache和反向代理软件---Varnish

    1.Varnish描述 1.1 Varnish的结构与特点 Varnish是一个轻量级别的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点: 基于内存进行缓存,重启后 ...

  6. nginx反向代理本地 两台web负载均衡 使用域名代理

    环境: 本地外网ip:123.58.251.166 .配置index.html网页 [root@host---- conf.d]# cat /web/sing/index.html <h1> ...

  7. nginx反向代理本地 两台web负载均衡 使用ip+端口代理

    环境: 本地外网ip:123.58.251.166 .配置index.html网页 [root@host---- conf.d]# cat /web/sing/index.html <h1> ...

  8. varnish加速web

    varnish主要功能是代理服务器和缓存,和nginx代理一样可以反向代理web服务器.但是varnish不能作为web服务器.但是它的优点是可以将访问过的网站还存在代理服务器上,以便于提升web的访 ...

  9. 使用Varnish加速Web

    通过配置Varnish缓存服务器,实现如下目标: - 使用Varnish加速后端Web服务 - 代理服务器可以将远程的Web服务器页面缓存在本地 - 远程Web服务器对客户端用户是透明的 - 利用缓存 ...

随机推荐

  1. SQL语句计算经纬度距离

    二: SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( ...

  2. vue 前后端分离 接口及result规范 及drf安装使用方法

    接口 # 接口:url链接,通过向链接发送不同的类型请求与参数得到相应的响应数据​# 1.在视图层书写处理请求的 视图函数# 2.在路由层为视图函数配置 url链接 => 产生接口# 3.前台通 ...

  3. Linux 下安装配置redis

    第一部分:安装redis 本人是先下载了4.0.2版本的redis安装包直接远程上传到linux服务器/usr/local目录下 那么安装过程如下: tar -zxvf redis-4.0.2.tar ...

  4. Linux系统之-常用命令及技巧

    一. 通用命令:1.date :print or set the system date and time2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z ...

  5. shell(计算机壳层)(一)

    在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe.它接收用户命令,然后调用相应的应用程序. wi ...

  6. [CSP-S模拟测试47]反思+题解

    打开题面,T3似乎被换过了.(那我就更有理由直接弃掉了) T1是我最害怕的乱搞题,赶紧扔了看T2.发现是个sb板子?雨天的尾巴弱化版? 然而线段树合并早忘干净了(最近几道可以线段树合并的题都是用别的方 ...

  7. 推荐两款远程管理Linux工具(基于Windows系统)

    推荐两款远程管理Linux工具(基于Windows系统) 1.Xshell 百度百科:Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows ...

  8. Codeforces 578B "Or" Game (前缀和 + 贪心)

    Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] 题目链接:B. "Or" Game You are given \(n\) ...

  9. 如何用QTP录制鼠标右键点击事件

    QTP录制鼠标右键单击事件要通过模拟键盘操作来实现 Step 1,修改ReplayType为2,一般情况默认设置是1的.(1 – 使用浏览器事件运行鼠标操作. 2 – 使用鼠标运行鼠标操作)Setti ...

  10. 安装Treserocr遇到的问题

    相关链接: tesseract下载地址:http://digi.bib.uni-mannheim.de/tesseract 一.出现的问题 1.点击进去 进行下载 注意:其中文件名中带有dev的为开发 ...