squid和varnish缓存代理服务器

简介:
squid缓存代理服务器

应用场景:
web访问加速(适用于正/反向解析)
正向:IP伪装、“×××”
反向:代替公网用户访问web服务器

缓存区:硬盘
软件包:squid-3.3.8-26.e17.x86_64.rpm
系统服务:squid
主程序:/usr/sbin/squid
主匹配文件:/etc/squid/squid.conf
默认监听端口:TCP 3128
默认访问日志:/var/log/squid/access.log

例:反向代理
步骤一:构建web服务器
1)使用yum安装web软件包
yum -y install httpd

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

httpd服务默认通过TCP 80端口监听客户端请求:
netstat -anptu | grep httpd

3)为Web访问建立测试文件
在网站根目录/var/www/html下创建一个名为index.html的首页文
echo webabc > /var/www/html/index.html

步骤二:部署Squid代理服务器
1)使用yum安装squid软件包:
yum -y install squid

2)修改/etc/squid/squid.conf配置文件:
vim /etc/squid/squid.conf
http_port 80 vhost 设置反向代理,将代理监听的端口修改为80

visible_hostname www.sina.com 设置主机名,默认没有该语句

cache_peer 192.168.2.100 parent 80 0 originserver 定义后端真实服务器信息

cache_dir ufs /var/spool/squid 200 16 256 硬盘缓存,缓存容量为200M,自动创建16个一级子目录和256个二级子目录

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

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

4)squid服务通过TCP 80端口监听客户端请求:
netstat -anptu | grep 80

步骤三:客户端测试
2)客户端开启浏览器访问
curl http://192.168.4.5 返回的是192.168.2.100服务的页面

 varnish缓存代理服务器

适用:只做方向代理
专业加速访问web服务
缓存区:硬盘和内存
默认监听端口:TCP 80
配置文件:/etc/varnish
/etc/init.d/varnish 启动程序
/etc/sysconfig/varnish 配置文件,varnish定义自身属性
/etc/varnish/default.vcl 默认配置文件,定义后端节点

/usr/bin/varnishadm 客户端程序
/usr/bin/varnishstat 状态监控

缓存管理
清除缓存内容的命令格式:
varnishadm -T IP:port -S securefile 
ban.url 页面文件名

查看缓存清理列表:
varnishadm ban.list

varnish日志
varnishlog [-w file] 共享内存的日志
varnishncsa [-w file] 访问日志

varnish状态分析
varnishstat
-Client connections accepted:
表示客户端成功发送连接总数量
-Client requests received:
表示客户端发送HTTP请求的总数 
-Cache hits:
表示命中缓存的次数
-Cache misses
表示缓存非命中的个数

例:
Web服务器192.168.2.100、Varnish代理服务器192.168.4.5,192.168.2.5
步骤一:构建Web服务器
1)使用yum安装web软件包
yum -y install httpd

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

httpd服务默认通过TCP 80端口监听客户端请求:
netstat -anptu | grep httpd

3)为Web访问建立测试文件
在网站根目录/var/www/html下创建一个名为index.html的首页文件
echo webbca /var/www/html/index.html

步骤二:源码安装Varnish
1)编译安装软件
yum -y install gcc readline-devel pcre-devel //安装软件依赖 
useradd -s /sbin/nologin varnish //创建账户
tar -xzf varnish-3.0.6.tar.gz
cd varnish-3.0.6
./configure --prefix=/usr/local/varnish
make && make install

2)复制启动脚本及配置文件
cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ (创建快捷方式)
ln -s /usr/local/varnish/bin/* /usr/bin/

3)修改Varnish文件
vim /etc/sysconfig/varnish (前端配置,连接客户端)
VARNISH_LISTEN_PORT=80 默认端口
VARNISH_STORAGE_SIZE=64M 定义缓存大小
VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" (基于内存方式缓存,malloc基于内存,file基于硬盘)

4)修改代理配置文件
mkdir /etc/varnish
cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
uuidgen > /etc/varnish/secret (密码文件)
vim /etc/varnish/default.vcl(后端配置,连接web服务器)
backend default {
.host = "192.168.2.100";
.port = "80";
}

起服务:systemctl restart varnish

步骤三:客户端测试
1)客户端开启浏览器访问
firefox http://192.168.4.5

步骤四:其他操作
1)查看varnish日志
varnishlog //varnish日志
varnishncsa //访问日志

2)更新缓存数据,在后台web服务器更新页面内容后,
用户访问代理服务器看到的还是之前的数据,
说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。
varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082
ban.url 页面文件名(清缓存)
清空缓存数据,支持正则表达式


     本文转自夜流璃雨 51CTO博客,原文链接:http://blog.51cto.com/13399294/2057996,如需转载请自行联系原作者



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
缓存 运维 编译器
LAMP+Varnish缓存详解(二)——单网站缓存
LAMP+Varnish缓存详解(二)——单网站缓存
9 0
|
1月前
|
存储 缓存 运维
LAMP+Varnish缓存详解(一)——Varnish简介
LAMP+Varnish缓存详解(一)——Varnish简介
18 0
|
5月前
|
缓存 Ubuntu Linux
百度搜索:蓝易云【Varnish开源HTTP反向代理缓存服务器、部署安装、测试】
通过按照上述步骤部署和配置Varnish,您可以将其作为反向代理缓存服务器来提高Web应用程序的性能和响应速度。记住,在实际部署中,您可能需要进一步调整Varnish的配置以满足您的具体需求。
46 2
|
5月前
|
缓存 Linux 开发者
百度搜索:蓝易云【Varnish开源HTTP反向代理缓存服务器、部署安装、测试。】
通过以上步骤,你可以成功部署和安装Varnish,并对Web应用程序进行测试。请根据具体需求进行适当的配置和调整,以确保Varnish能够按预期工作并提升Web应用程序的性能。
33 0
|
9月前
|
缓存 运维 网络协议
Linux巩固篇016-Linux Squid 部署代理缓存服务
纸上得来终觉浅,绝知此事要躬行
403 0
Linux巩固篇016-Linux Squid 部署代理缓存服务
|
存储 缓存 小程序
【微信小程序】CSS模块化、使用缓存在本地模拟服务器数据库
哈喽大家好,本期是微信小程序专栏第十五期。本期主要内容是使用缓存在本地模拟服务器数据库。主要包括了解应用程序的生命周期、Storage缓存初始化、设置缓存和清理缓存等。
125 0
|
缓存 Linux 网络虚拟化
Squid缓存代理服务器
Squid缓存代理服务器
437 0
Squid缓存代理服务器
|
存储 缓存 NoSQL
同一服务器上有多个 WordPress 网站如何配置 Memcached 缓存?
如果在同一台服务器上,部署了多个 Wordpress 项目,如果在每台服务器上都启用 Memcached ,那么将会出现网站白屏、数据串站的问题,本文我们来介绍如何处理这种问题。
313 0
|
存储 缓存 安全
Web缓存服务——Squid代理服务器应用(下)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
179 0
|
1月前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客