nginx+tomcat+memcached实现算法调用、Goaccess日志可视化、session实现交叉存储

一、实验环境

三台虚拟机:
server1:172.25.7.2
server3:172.25.7.4
server4:172.25.7.5
在之前的实验基础上操作

二、搭建实验服务器server3和server4

官网下载apache-tomcat-7.0.37.tar.gz
阿里云下载jdk-8u121-linux-x64.rpm
dnf install -y jdk-8u121-linux-x64.rpm
tar zxf apache-tomcat-7.0.37.tar.gz
cd /root/apache-tomcat-7.0.37/webapps/ROOT
vim test.jsp
 
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session list</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test.jsp" method="POST">
name:<input type=text size=20 name="dataName">
<br>
key:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>

scp test.jsp server3:/root/apache-tomcat-7.0.37/webapps/ROOT  把test.jsp远程发送给server3
cd  /root/apache-tomcat-7.0.37/bin
./startup.sh
netstat -antplu | grep 8080  
##查看8080端口是不是被java占用,如果不是,关掉占用的进程,重新启动./startup.sh

systemctl start memcached <在server3和server4中做的操作一样>

三、配置server1的环境

获取nginx-sticky模块包,点击进入下载位置

压缩包名称:nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip

unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
cd openresty-1.17.8.2
./configure --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
gmake
cd /usr/local/openresty/nginx/sbin
mv nginx nginx.old                   ##将nginx名字改为nginx.old,备份,以防出错
cd /root/openresty-1.17.8.2/build/nginx-1.17.8/objs/
cp nginx /usr/local/openresty/nginx/sbin/

vim /usr/local/openresty/nginx/conf/nginx.conf
http {
....
 upstream tomcat {
        sticky;    ##先调用第一个,down掉以后由下一个server继承
        server 172.25.7.4:8080;
        server 172.25.7.5:8080;
        }
 
server {
...
location ~ \.jsp$ {
            proxy_pass   http://tomcat;
        }
-------------------------------------------------------------------------
usr/local/openresty/nginx/sbin/nginx -s start
##如果已经开启过,则将start改称reload

四、测试

访问server3和server4的8080端口,无误后访问server1下的test.jsp

五、session实现交叉存储

1.在server3和server4里

    asm-3.2.jar    
    kryo-serializers-0.10.jar             
    minlog-1.2.jar                
    reflectasm-1.01.jar
    kryo-1.04.jar  
    memcached-session-manager-1.6.3.jar 
    memcached-session-manager-tc7-1.6.3.jar 
    msm-kryo-serializer-1.6.3.jar  
    spymemcached-2.7.3.jar
    将这些包放进jar目录
    cd jar
    cp /root/jar /root/apache-tomcat-7.0.37/lib

cd /root/apache-tomcat-7.0.37/conf
vim context.html 
     
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="n1:172.25.6.6:11211,n2:172.25.6.7:11211"
    failoverNodes="n1"  
        ##在 node2 上此项设置为“n2”但是配置文件不能有中文,如果需要拷贝,请删除文件中的中文
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
-------------------------------------------------------------------------------
    /root/apache-tomcat-7.0.37/bin/shutdown.sh  
    /root/apache-tomcat-7.0.37/bin/startup.sh 

2.查看11211使用是否为memcached

3.测试

浏览器访问172.25.7.2/test.jsp

在server3上 telnet  localhost:11211 如果没有telnet,则yum install -y telnet

六、日志可视化

Goaccess:

GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序(terminal)即可访问。能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。

官网下载goaccess-1.4.tar.gz
阿里云下载GeoIP-devel-1.5.0-13.el7.x86_64.rpm
yum install -y GeoIP-devel-1.5.0-13.el7.x86_64.rpm
tar zxf goaccess-1.4.tar.gz  
cd /root/goaccess-1.4
./configure --enable-utf8 --enable-geoip=legacy
make
make install 

1.终端输出

终端输出以下提示使用predef的日志配置对话框
cd /usr/local/openresty/nginx/logs/   <随便找一个日志>
 goaccess access.log -c

2.静态输出

下面的静态html输出解析访问日志并显示状态
 access.log -o /usr/local/openresty/nginx/html/report.html --log-format=COMBINED --real-time-html

-----------------------------------------------
浏览器访问server1:172.25.7.2/report.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Horizon_carry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值