文章目录
一、goaccess 日志可视化
它是一款可视化web日志监控工具,它能够为需要动态可视服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息,主要优点:快速、实时、具有美观的页面,几乎支持所有的web日志格式
下载安装:
wget https://tar.goaccess.io/goaccess-1.4.tar.gz
tar -xzvf goaccess-1.4.tar.gz
cd goaccess-1.4/
./configure --enable-utf8 --enable-geoip=legacy
make
make install
可以访问到可视化页面,且当有新的日志生成时网页自动实时更新,无需手动刷新:
二、tomcat结合memcache
1.配置tomcat,与nginx结合
tomcat介绍链接: https://baike.baidu.com/item/tomcat/255751?fr=aladdin.
nginx中结合tomcat之后,访问流程:
client -> nginx:80 ->*.jsp ->tomcat:8080
nginx适合高并发,tomcat属于应用服务器,对资源的消耗比较大,因此并不适合高并发场景,一般需要多台服务器来缓解其压力,然后再用nginx做负载较均衡即可
用户访问资源,然后到nginx服务器的80端口,如果访问的是以.jsp为后缀的文件时交给tomcat:8080处理
配置第二台tomcat服务器:
2.nginx配置tomcat负载均衡、加入sticky算法
vim /usr/local/nginx/conf/nginx.conf %编辑nginx配置文件
在tomcat的默认发布目录防止测试页面文件:test.jsp:
举例:添加物品到购物车中,如果每次添加新的物品,之前的物品都丢失,这显然是不合适的
3.结合memcache
上述2中我们在nginx中加入了sticky算法,保证在同一个客户端访问动态资源时不做负载均衡,不调度到其它后端,但是新的问题是,
当某一台tomcat服务器down掉之后,用户继续提交信息,那么此时会调度到不同的tomcat后端,此时用户之前提交的信息仍然会丢失
,这个问题我们该如何解决呢?
这里我们尝试一种存储方案:
如果像上述那样存储,除非所有的节点都down掉,否则用户信息不会丢失
下面我们来配置:
配置刚才的jar资源:
此时如果把server3的tomcat down掉,用户在提交信息时之前提交的信息不会丢失,因为在server2的memcache中有保存:
同样,如果server3 tomcat开启,server2上的memcache关掉,调度节点不会转移为server3,之前在server2后端提交的信息也不会丢失