环境准备:
代理软件:nginx
安装软件【依赖】【版本冲突】【测试】
修改配置文件[优化]
启动服务
运行3-5年,错误【排错】【日志】【计算机英语】
运维 一门脚本语言[shell,python,perl之一]
运维,即运行&维护(Operation&Maintance)
IT运维、业务运维、日常管理运维:采用相关的方法、手段、技术、制度、流程和文档等,
对IT运行环境、IT业务系统和IT运维人员进行的综合管理。
IT运维技术
传统运维技术特点:单一化:业务及服务比较单一
简单化:部署的服务与架构相对简单
被动管理:出现问题后,救火式的管理
Linux运维最佳实践:集中化;自动化;标准化;虚拟化;分布式…
代理软件基本概念
Proxy,代理人、经纪人、中介
代替用户处理事务:能提供正常情况下不便或无法访问的资源
应用场景:Web访问加速(反向代理);IP伪装、“翻墙”(正向代理)
代理服务器工作机制:cache池的利用;线路转移
Sqiud服务端
软件包:squid
系统服务:squid
主程序:/usr/sbin/squid
主配置文件:/etc/squid/squid.conf
默认监听端口:TCP 3128
默认访问日志:/var/log/squid/access.log
配置文件解析
visible_hostname 名字(随意) //设置主机名
http_port 80 vhost //设置反向代理
cache_peer 主服务器地址 parent 80 0 originserver //定义后端真实服32务器信息
cache_mem 128 MB //内存缓存 //硬盘缓存↓
cache_dir ufs(存储格式) /var/spool/squid 100(目录空间) 16(一级目录数) 256(二级目录数)
http_access allow all //允许本机所有主机使用代理服务器
access_log /var/log/squid/access.log squid
Squid访问控制
acl 名称 类型 内容
http_access allow acl名称
http_access deny acl名称
类型:src 源地址dst 目标地址
port 目标端口dstdomain 目标域
time 访问时间maxconn 最大并发连接
url_regex 目标URL地址
urlpath_regex 整个目标URL路径
#vim /etc/squid/squid.conf
acl mytime time MTWHF 09:00-18:00
http_access deny mytime
用户www.sina.com—>DNS[判断你是哪里的用户]
u1 DNS[服务器]分离解析
u2 www.sina.com
u3 match-client
zone “sina.com” {
type master;
file “sina.zone”;
}
squid(反向代理,正向,透明代理)
[代理软件,历史悠久,资料,排错容易,功能多,性能差]
查看日志:
代理日志:/var/log/squid/access.log
HTTP日志:/var/log/httpd/access_log
使用硬盘作缓存/var/spool/squid
查看缓存:ls /var/spool/squid/ —-> ls /var/spool/squid/00/00
Squid反向代理
反向代理工作机制
与传统代理的方向相反:代替公 用户访问组织内部的Web服务器;
部署基于地区的CDN服务器。
反向代理服务器
准备源Web服务器
配置反向代理服务器。关闭自带的httpd服务,避免冲突,将代理监听端口修改为80。
客户端访问测试。通过HTTP访问代理服务器的80端口,如elink –dump http://….
示例:配置代理服务器,实现以下目标:
代理服务器可以将远程的Web服务器页面缓存在本地;代理服务器端口设置为80端口
用户通过访问代理服务器即可获得远程Web服务器上的页面内容
远程Web服务器对客户端用户是透明的;利用缓存机制提高 站的响应速度
步骤一:构建web服务器
1)使用yum安装web软件包
[root@web ~]# yum -y install httpd
[root@web ~]# rpm -q httpd ##确认安装成功
2)启用httpd服务,并设为开机自动运行
[root@web ~]# systemctl start httpd && systemctl enable httpd
[root@web ~]# firewall-cmd –set-default-zone=trusted
httpd服务默认通过TCP 80端口监听客户端请求:# netstat -anptu |grep httpd
3)为Web访问建立测试文件
在 站根目录/var/www/html下创建一个名为index.html的首页文件:
[root@web ~]# vim /var/www/html/index.html
192.168.2.100
或echo “192.168.2.100” > /var/www/html/index.html
步骤二:部署Squid代理服务器
1)使用yum安装squid软件包:
[root@Proxy ~]# yum -y install squid
2)修改/etc/squid/squid.conf配置文件:
[root@Proxy ~]# vim /etc/squid/squid.conf
.. ..
http_port 80 vhost //设置反向代理【修改】
visible_hostname Proxy.tarena.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 //允许本机所有主机使用代理服务器【修改】
或# sed -i ‘/http_port/c http_port 80 vhost’ /etc/squid/squid.conf ……
3)启动squid服务,并设置为开机启动:
[root@Proxy ~]# firewall-cmd –set-default-zone=trusted 关闭防火墙
[root@Proxy ~]# systemctl start squid; systemctl enable squid
4)squid服务通过TCP 80端口监听客户端请求:
[root@Proxy ~]# netstat -anptu | grep 80
步骤三:客户端测试:开启浏览器访问
[root@client ~]# curl http://192.168.4.5 //返回的是2.100服务的页面
curl -I http://192.168.4.5/ 可以查看头部文件
Server: Apache/2.4.6 (Red Hat Enterprise Linux)
X-Cache: HIT from svr5.tarena.com
第一次访问是MiSS状态【从缓存中没有找到了需要的页面】
第2次访问是HIT状态【从缓存中找到了需要的页面】
手动设置代理:
http代理:192.168.4.5,端口:80
地址栏输入服务器的IP:192.168.2.100
++++++++++++++++++++++++++++
Varnish服务器
Varnish是一款高性能且开源的反向代理服务器和http加速器。可使用硬盘或内存作缓存
与传统的squid相比,varnish具有性能更高、速度更快、管理更方便等诸多优点。
扬威最大的在线 纸Verdens Gang使用3台varnish代替了原来的12台squid,性能愕然比以前更好。
环境准备:将varnish软件拷贝到测试环境中
# scp lnmp_soft-2017-03-28.tar.gz root@192.168.4.5:/root
# tar -xzf lnmp_soft-2017-03-28.tar.gz ##源码包解压
# cd lnmp_soft/
# ./install_lnmp.sh ##选7,此处为脚本处理
Varnish服务器
/etc/varnish #配置文件目录
/etc/init.d/varnish #varnish的启动程序
/etc/sysconfig/varnish #配置文件,varnish定义自身属性
/etc/varnish/default.vcl #默认配置文件,定义后端节点的
/usr/bin/varnishadm #客户端程序
/usr/bin/varnishstat #状态监控
加速服务器
配置文件解析
# 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}” #基于内存方式作缓存
快速部署varnish
# mkdir /etc/varnish
# cp /usr/local/varnish/etc/default.vcl /etc/varnish/
# uuidgen > /etc/varnish/secret
# vim /etc/varnish/default.vcl ##定义后端配置文件
backend default {
.host=”192.168.2.100”;
.port=”80”;
}
# service varnish start
缓存管理
清除缓存内容:交互式:varnishadm -T IP:Port -S securefile
ban.url
非交互式:varnishadm -S /etc/varnish/secret ban.url/
//密码文件为/etc/varnish/secret
查看缓存清理列表:varnishadm ban.list
#varnishadm
>help //查看所有命令
Varnish日志:varnishlog [-w file] //共享内存的日志
varnishncsa [-w file] //类Apache日志
Varnish状态:Varnishstat
Client connections accepted:表示客户端成功发送连接总数量
Client requests received:客户端发送HTTP请求的总数
Cache hits:!重要:命中缓存的次数
Cache misses:!重要:缓存非命中的个数
N struct objects:表示当前被缓存过的数量
N expired objects:表示过期的缓存内容数量
N LRU moved objects:表示被淘汰的缓存内容个数
缓存过期:后台数据已更新,但缓存还是原先的数据,
是否要及时更新:是:
否:一般都不用,可以用周期性计划进行更新设置
如何更新:实时:varnishadm命令
延迟
实验:1.在web服务器:# echo “XX” > /var/www/html/nb.html
2.在客户端:# curl http://192.168.4.5 代理缓存
3.在web服务器更新页面:# echo “YYY” > /var/www/html/nb.html
4.在客户端:# curl http://192.168.4.5 缓存过期
5.代理服务器(清理缓存)
# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 ban.url nb.html
示例:使用Varnish加速Web,管理缓存页面
通过源码编译安装Varnish缓存服务器;编译安装Varnish软件
复制启动脚本与配置文件;修改配置文件,缓存代理源Web服务器,实现Web加速功能
对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd 站根路径为/var/www/html,首页文档名称为index.html。
步骤一:构建Web服务器
1)使用yum安装web软件包 [root@web1 ~]# yum -y install httpd
2)启用httpd服务,并设为开机自动运行
[root@web1 ~]# systemctl start httpd ; systemctl enable httpd
httpd服务默认通过TCP 80端口监听客户端请求:
[root@pc205 ~]# netstat -anptu | grep httpd
3)为Web访问建立测试文件
在 站根目录/var/www/html下创建一个名为index.html的首页文件:
[root@pc205 ~]# vim /var/www/html/index.html
192.168.2.100
步骤二:部署Varnish缓存服务器
1)编译安装软件
[root@Proxy ~]# yum -y install gcc readline-devel pcre-devel //安装软件依赖包
[root@Proxy ~]# useradd -s /sbin/nologin varnish //创建账户
[root@Proxy ~]# tar -xzf varnish-3.0.6.tar.gz
[root@Proxy ~]# cd varnish-3.0.6
[root@Proxy varnish-3.0.6]# ./configure –prefix=/usr/local/varnish
[root@Proxy varnish-3.0.6]# make && make install ##解决依赖关系
2)复制启动脚本及配置文件
[root@Proxy varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish
##提供一个启动服务
[root@Proxy varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
##配置文件
[root@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ ##作软链接或者修改PATH路径
[root@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/bin/* /usr/bin/
3)修改Varnish文件
[root@Proxy ~]# vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 #默认端口
89行:VARNISH_STORAGE_SIZE=64M #定义缓存大小
92行:VARNISH_STORAGE=”malloc,${VARNISH_STORAGE_SIZE}” #基于内存方式缓存
4)修改代理配置文件
[root@Proxy ~]# mkdir /etc/varnish
[root@Proxy ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/
[root@Proxy ~]# uuidgen > /etc/varnish/secret
[root@Proxy ~]# vim /etc/varnish/default.vcl
backend default {
.host = “192.168.2.100”;
.port = “80”; //定义,后台服务器是192.168.2.100,端口是80
}
[root@Proxy ~]# systemctl stop squid
[root@Proxy ~]# service varnish start 或者/etc/init.d/varnish start
Starting varnish (via systemctl): //按Ctrl+c,是脚本的bug,不影响服务的启动
[root@Proxy ~]# netstat -ntulp |grep 80 //确认服务已开启
步骤三:客户端测试,开启浏览器访问 [root@client ~]# curl http://192.168.4.5
步骤四:其他操作
1)查看varnish日志
[root@Proxy ~]# varnishlog //varnish日志,确认与父还能ping通
[root@Proxy ~]# varnishncsa //访问日志
2)更新缓存数据,在后台web服务器更新页面内容后,用户访问代理服务器看到的还是之前的数据,说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。
[root@Proxy ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 页面文件名 //清空缓存数据,支持正则表达式
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!