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 页面文件名(清缓存) 清空缓存数据,支持正则表达式