IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> goccess日志可视化,tomcat结合memcache -> 正文阅读

[PHP知识库]goccess日志可视化,tomcat结合memcache

一.goccess日志可视化

安装goaccess
https://tar.goaccess.io/goaccess-1.4.tar.gz
tar zxf goaccess-1.4.tar.gz
cd goaccess-1.4/
ls
在这里插入图片描述
下载依赖性安装包

http://mirror.centos.org/centos/7/os/x86_64/Packages/GeoIP-devel-1.5.0-14.el7.x86_64.rpm
 yum install ncurses-devel.x86_64 -y

在这里插入图片描述

./configure --enable-utf8 --enable-geoip=legacy

在这里插入图片描述

make && make install

在这里插入图片描述
完成后,查看goaccess命令的位置:which goaccess
在这里插入图片描述
** 实现可视化日志监控**

生成一个新的html文件,把当前access.log日志中的内容实时的以html图表的形式展示出来

cd /usr/local/nginx/logs
ls
goaccess access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html

在这里插入图片描述
在真机打开浏览器访问http://172.25.101.1/report.html
请添加图片描述
如果需要增加请求量,在真机执行:

ab -c10 -n 1000 http://172.25.24.1/index.html

请添加图片描述
请添加图片描述

二.tomcat结合memcache

nginx中结合tomcat之后,访问流程:
client -> nginx:80 ->*.jsp ->tomcat:8080
nginx适合高并发,tomcat属于应用服务器,对资源的消耗比较大,因此并不适合高并发场景,一般需要多台服务器来缓解其压力,然后再用nginx做负载较均衡即可
用户访问资源,然后到nginx服务器的80端口,如果访问的是以.jsp为后缀的文件时交给tomcat:8080处理

1.配置tomcat(server2,server3)
http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.37/bin/apache-tomcat-7.0.37.tar.gz
	
rpm -ivh jdk-8u121-linux-x64.rpm

在这里插入图片描述

tar zxf apache-tomcat-7.0.37.tar.gz
cd apache-tomcat-7.0.37/
ls
mv apache-tomcat-7.0.37 /usr/local/
cd /usr/local/
ls
ln -s apache-tomcat-7.0.37/ tomcat

在这里插入图片描述

cd tomcat/
ls
cd bin/
./startup.sh   #开启服务

在这里插入图片描述

netstat -antlp  #查看端口

在这里插入图片描述

在真机中打开浏览器访问: 172.25.101.2:8080

在这里插入图片描述
server3中做同样的部署。

2.server1访问的tomcat

server1:

cd /usr/local/nginx/conf/
vim nginx.conf
nginx -s reload

请添加图片描述

在这里插入图片描述

在这里插入图片描述

在真机中打开浏览器访问:172.25.101.1/index.jsp,静态数据由nginx支持,所以通过server1访问tomcat打不开图形:
请添加图片描述
此时打开server2:

cd /usr/local/tomcat/webapps/ROOT/
lftp 172.25.254.101
/> cd pub/docs/lamp/
/>get test.jsp
exit

真机访问172.25.101.1/test.jsp:
添加用户:user1:111; user2:222

请添加图片描述

cd /usr/local//tomcat/
bin/shutdown.sh

当nginx做了负载均衡,同时开启两个tomcat时,回受到nginx的调度,server2端提交数据后会跳转到server3,则会将之前建立的session断开,数据便不会存在。
为了解决此问题,则需要加入sticky算法对nginx进行粘制,即绑定,避免请求调转。保证在同一个客户端访问动态资源时不做负载均衡,不调度到其它后端,用户信息得以保存。

请添加图片描述
此时在真机中访问时,会自动打开server3,因为server2和server3不共享,在server2中输入的信息会丢失。

请添加图片描述

3.tomcat结合memcache交互存储

当只开启server2时,产生的数据会保存到本地,但是当开启两个tomcat时,由于在负载均衡状态,受到nginx调度,server2端提交数据后直接跳到server3,与之前建立的session断开了,再次回来数据就不存在。如果server2关掉,那么server3上的数据依然会丢失,因此我们需要memcache的加入实现session交叉存放,即将访问tomcat2上的数据存放在memcache3中,将访问tomcat3上的数据存放在memcache2中,这样就保证了数据的完整性,无论关掉哪一个tomcat,都不会使数据丢失。
转载图片
在server2和server3中,安装memcached并开启服务:

server2:
yum install -y memcached
systemctl start memcached

server3:
yum install -y memcached
systemctl start memcached

配置session管理器,在server3主机中对tomcat的配置文件进行编辑,设定交叉存储,将自身memcache设为n2,server2主机的memcache设为n1,正常运行时将信息存放在n2,不能正常运行时,将信息存储在n1,即自身memcache。

cd /usr/local/tomcat/conf/
ls
vim context.xml
///
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.24.2:11211,n2:172.25.24.3:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
///

server2:
请添加图片描述
server3:
请添加图片描述

cd ..
cd lib
lftp 172.25.254.250
> cd pub/docs/lamp/jar
> mget *
> exit
ls
rm -rf memcached-session-manager-tc6-1.6.3.jar	##版本需对应,这个不对应
cd ..
bin/startup.sh

在server2和server3都要进行:
请添加图片描述
这里我已经做过了,这是做好之后的样子。
启动tomcat服务:
请添加图片描述
在真机进行测试,tomcat2和tomcat3服务都为开启状态,当浏览器访问到server2,输入信息之后,则会将信息备份在memcache3中。
请添加图片描述
打开server3:

tail -f logs/catalina.out				##INFO:[n1][n2]
yum install -y telnet
telnet localhost 11211-->get  0864A67964BB93CE6813CD95C7C74B12-n2	

请添加图片描述在server2中关掉tomcat2:

在这里插入图片描述此时在浏览器访问,则访问的是server3,tomacat2服务已经关闭,此时写入的信息也会在memcache2中备份。
请添加图片描述请添加图片描述
继续关掉server2中的memcache2:
此时访问的信息将不会在memcache2中备份,只存储在memcache3中。
请添加图片描述

在server2:

telnet localhost 11211

请添加图片描述
数据不存在。

server3:
请添加图片描述
反过来实验,则为同样的结果。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:34:35  更:2021-09-11 18:35:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 15:36:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码