Nginx+tomcat+memcached负载均衡集群服务搭建

xiaoxiao2021-02-28  35

一、概述

Nginx负责负载均衡,Tomcat负责实际服务,Memcached负责同步Tomcat的Session,达到Session共享的目的。

二、实验环境

server1: server3:

三、配置tomcat(server1和server3配置相同)

1.安装java环境

两种方法:1)rpm包:直接安装() 2)编译

2.编译安装

1)解压到/usr/local/ 2)做软连接 3)修改环境变量(java家目录,java库目录,java运行路径) source /etc/profile 执行此命令使配置生效 4)编写测试脚本 [root@server1 ~]# vim test.java 5)测试

## 先编译 [root@server1 ~]# javac test.java ## 测试 [root@server1 ~]# java test Hello World!

2.安装tomcat

1)下载 apache-tomcat-7.0.37.tar.gz 2)解压到/usr/local

[root@server3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/

3)做软连接

[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat

4)在/usr/local/tomcat/webapps/ROOT下,建立test.jsp 5)在/usr/local/tomcat/bin,启动tomcat,访问tomcat的默认发布页面,index.jsp,默认端口为8080,访问:

二、负载均衡

server1:

1.启动nginx(前面lnmp中的nginx)

2.修改配置文件,重新加载

ip_hash : IP绑定,保持连接,去掉ip_hash:则默认为轮叫模式 设置默认发布文件 定义tomcat

Server3 配置不变

3.访问ip/test.jsp,可访问到时间页面(test.jsp设置为默认发布文件时,可直接访问ip)

首次访问server1 当server1 tomcat 停止后,访问server3 此时server1上的sension 会被清除,同样server3停止也会清除sension

三、配置memcached

开启memcache服务,并在tomcat中添加模块,保证关闭tomcat后sension不会被清除,使用交叉储存方法,配置如下:

1.nginx添加sticky模块

2.修改配置文件(ip_hash修改为sticky,其他配置不变),重新加载

[root@server1 logs]# nginx -s reload

2.两台虚拟机的tomcat中添加jar模块,

## 删除tc6 [root@server1 lib]# rm -f memcached-session-manager-tc6-1.6.3.jar

4.两台虚拟机都编辑tomcat配置文件

failoverNodes=”n1”(指向本机 server1为n1 server3为n2)

5.两台虚拟机修改test.jsp

6.两台虚拟机先关闭tomcat,再开启tomcat

查看 catalina.out 出现以下代码MemcachedSessionService finished initialization, sticky true, 则表示tomcat初始化成功

7.两台虚拟机安装memcahed

[root@server3 ROOT]# yum install memcached -y

8.客户端访问

当serer1 tomcat down掉时,再次访问: 此时页面显示保存了server1的sension,则配置成功

9.查看sension

## 下载telnet [root@server3 tomcat]# yum insatll telnet -y ## telnet localhost 11211 查看本地sension

get后输入id(访问网页上显示的id)

转载请注明原文地址: https://www.6miu.com/read-2629603.html

最新回复(0)