Squid服务器,Varnish服务器

反向代理

1.1 问题

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

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

1.2 方案

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

实验环境所需要的主机及对应的IP设置列表如表-1所示。

表-1 主机列表

实验拓扑如图-1所示。

图-1

1.3 步骤

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

步骤一:构建web服务器

1)使用yum安装web软件包

  1. [[email protected] ~]# yum -y install httpd
  2. .. ..
  3. [[email protected] ~]# rpm -q httpd
  4. httpd-2.4.6-40.el7.x86_64

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

  1. [[email protected] ~]# systemctl start httpd ; systemctl enable httpd

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

  1. [[email protected] ~]# netstat -anptu | grep httpd
  2. tcp        0        0        :::80        :::*        LISTEN        2813/httpd

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

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

  1. [[email protected] ~]# cat /var/www/html/index.html
  2. <html>
  3. <title>Welcome</title>
  4. <body>
  5. <h1>192.168.2.100</h1>
  6. </body>
  7. </html>

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

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

  1. [[email protected] ~]# yum -y install squid
  2. .. ..

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

  1. [[email protected] ~]# vim /etc/squid/squid.conf
  2. .. ..
  3. http_port 80 vhost                            //设置反向代理
  4. visible_hostname svr5.tarena.com                //设置主机名,默认没有该语句
  5. cache_peer 192.168.2.100 parent 80 0 originserver //定义后端真实服务器信息
  6. cache_dir ufs /var/spool/squid 200 16 256        //硬盘缓存,缓存容量为200M,自动创建16个一级子目录和256个二级子目录
  7. http_access allow all                         //允许本机所有主机使用代理服务器

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

  1. [[email protected] ~]# systemctl start squid; systemctl enable squid

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

  1. [[email protected] ~]# netstat -anptu | grep 80
  2. tcp        0        0        :::80        :::*        LISTEN        3213/(squid)

步骤三:客户端测试

2)客户端开启浏览器访问

  1. [[email protected] ~]# curl http://192.168.4.5            //返回的是2.100服务的页面

2 案例2:使用Varnish加速Web

2.1 问题

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

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

2.2 方案

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

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

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

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

图-2

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

2.3 步骤

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

步骤一:构建Web服务器

1)使用yum安装web软件包

  1. [[email protected] ~]# yum -y install httpd

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

  1. [[email protected] ~]# systemctl start httpd ; systemctl enable httpd

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

  1. [[email protected] ~]# netstat -anptu | grep httpd
  2. tcp        0        0        :::80        :::*        LISTEN        2813/httpd

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

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

  1. [[email protected] ~]# cat /var/www/html/index.html
  2. <html>
  3. <title>Welcome</title>
  4. <body>
  5. <h1>192.168.2.100</h1>
  6. </body>
  7. </html>

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

1)编译安装软件

  1. [[email protected] ~]# yum -y install gcc readline-devel pcre-devel    //安装软件依赖包
  2. [[email protected] ~]# useradd -s /sbin/nologin varnish                //创建账户
  3. [[email protected] ~]# tar -xzf varnish-3.0.6.tar.gz
  4. [[email protected] ~]# cd varnish-3.0.6
  5. [[email protected] varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
  6. [[email protected] varnish-3.0.6]# make && make install

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

  1. [[email protected] varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish
  2. [[email protected] varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
  3. [[email protected] varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
  4. [[email protected] varnish-3.0.6]# ln -s /usr/local/varnish/bin/* /usr/bin/

3)修改Varnish文件

  1. [[email protected] ~]# vim /etc/sysconfig/varnish
  2. 66行:VARNISH_LISTEN_PORT=80                                #默认端口
  3. 89行:VARNISH_STORAGE_SIZE=64M                                #定义缓存大小
  4. 92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"        #基于内存方式缓存

4)修改代理配置文件

  1. [[email protected] ~]# mkdir /etc/varnish
  2. [[email protected] ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/
  3. [[email protected] ~]# uuidgen > /etc/varnish/secret
  4. [[email protected] ~]# vim /etc/varnish/default.vcl
  5. backend default {
  6. .host = "192.168.2.100";
  7. .port = "80";
  8. }
  9. [[email protected] ~]# service varnish start

步骤三:客户端测试

1)客户端开启浏览器访问

  1. [[email protected] ~]# curl http://192.168.4.5

步骤四:其他操作

1)查看varnish日志

  1. [[email protected] ~]# varnishlog                    //varnish日志
  2. [[email protected] ~]# varnishncsa                    //访问日志

2)更新缓存数据,在后台web服务器更新页面内容后,用户访问代理服务器看到的还是之前的数据,说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。

  1. [[email protected] ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 页面文件名
  2. //清空缓存数据,支持正则表达式

原文地址:https://www.cnblogs.com/xiaoren112/p/8270116.html

时间: 2024-10-08 17:10:26

Squid服务器,Varnish服务器的相关文章

缓存服务器varnish概念篇

一.Varnish 简介 Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算机系统的内存除了主存外,还包括了CPU内的L1.L2,甚至有L3快取.硬盘上也有自己的快取装置,因此Squid Cac

高性能缓存服务器Varnish架构配置

Varnish跟Squid都是一款内容加速缓存服务器,我们可以使用它们来对我们的网页内容进行缓存,以此来从某个方面提高用户体验度,提升网站整体的抗压能力. 目前自建的CDN中,有很多都是基于Squid.Varnish等相关缓存软件,经过内部的二次开发实现了更好的内容加速及管理. 那今天我们一起来学习一下Varnish简单的搭建及日常的维护,深入的东西后期分享,跟大家一起来交流.这里直接上Shell脚本自动初始化并安装: #!/bin/sh #auto install varnish #2014-

varnish服务器

Vainish是一款高性能且开源的反向代理服务器和http加速器. 与传统的squid相比,Varnish具有性能更高.速度更快等诸多优点. Varnish服务器 --/etc/varnish      #配置文件目录 /etc/init.d/varnish   #varnish的启动程序 /etc/sysconfig/varnish #配置文件,varnish定义自身属性 /etc/varnish/default.vcl #默认配置文件,定义后端节点 --/usr/bin/varnishadm

搭建cdn的高性能HTTP加速器Varnish服务器

CND的简单了解: 内容分发网络(CDN)是一种新型网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层:而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式. CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率.CDN的关键技术主要有内容存储和分发技术. CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中

缓存服务器varnish实践篇

一.实验环境 服务器 IP地址 系统版本 varnish服务器 172.16.8.1 Centos6.5 web1服务器 172.16.8.5:81 Centos6.5 web2服务器 172.16.8.5:82 Centos6.5 img1服务器 172.16.8.5:83 Centos6.5 img2服务器 172.16.8.5:84 Centos6.5 php1服务器 172.16.8.5:85 Centos6.5 php2服务器 172.16.8.5:86 Centos6.5 二.安装v

高可用haproxy调度varnish服务器缓存后端动静分离集群架构

(1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题: (2) 在haproxy和后端主机之间添加varnish进行缓存: (3) 给出设计拓扑,写成博客: (4) haproxy的设定要求: (a) stats page,要求仅能通过本地访问使用管理接口:  (b) 动静分离: (c) 分别考虑不同的服务器组的调度算法: (5) haproxy高可用: 实验规划: 利用keepalived主备高可用两个haproxy服务器 对varnish缓存服务器做高可用 动态w

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

/**10.使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器. 服务器接收客户端发送的字符串,反转之后发回客户端.客户端接收并打印. * 客户端*/ import java.io.*; import java.net.*; public class Test10_Client { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.0.

手机应用获取验证码后。提交到服务器,服务器如何判断

手机应用从服务应用获取短信验证码后.再次提交到服务器,服务器如何判断是否和之前一致. 可能同时有很多同时验证.麻烦各位提供个思路 两种方式: 1.如果对验证码有时间限制,可以在服务端生成验证码之后,存储在session里面,同时在session里面存储当前时间.手机提交后,服务端拿到验证码验证并用当前时间减去刚才保存的时间看是否超时. 2.如果没有时间限制,可以放到数据库里面. http://www.iteye.com/problems/124176 http://www.iteye.com/p

使用 Sconfig.cmd 配置服务器核心服务器

使用 Sconfig.cmd 配置服务器核心服务器 适用对象:Windows Server 2012 R2, Windows Server 2012 在 Windows Server 2012 中,你可以使用服务器配置工具 (Sconfig.cmd) 配置和管理服务器核心安装的几个常见方面. 必须是管理员组的成员才能使用此工具. Sconfig.cmd 在最小服务器界面和“完全安装”模式中可用. 启动服务器配置工具的步骤 更改为系统驱动器. 键入 Sconfig.cmd,然后按 Enter. 服

国内专业服务器租用托管 棋牌服务器游戏服务器视频服务器 开区挂站服务器

国内专业服务器租用托管 棋牌服务器游戏服务器视频服务器 开区挂站服务器 妙解!无视攻击! 高防特价:网站.游戏.棋牌最佳选择 衡阳电信(30G单防)8H/8G/1T/独享20M --800元 衡阳双线(30G单防)8H/8G/1T/独享20M--1100元 百兆独享:视频影音聊天室下载站的福音 衡阳电信(30G单防)8H/8G/1T/独享100M --1100元 更多配置价格请联系小新 企业Q 2851506992 Q604906005  Tell:15013023312 腾正集团-领先的IDC