Nginx+Tomcat+Memcached负载均衡和session共享

1. 演示搭建

说明:本文参考网络日志http://blog.csdn.net/remote_roamer/article/details/51133790,结合实际操作,仅做个演示记录。

1.1. 工具

1、Tomcat两个

2、Memcached

3、Nginx

如图:

1.2. 结果演示

1、打开浏览器访问http://localhost:8080/index.jsp

1.3. 配置

1.3.1. 安装Nginx

1、准备nginx,解压即可

2、配置打开nginx目录下的conf/nginx.conf文件,替换复制如下内容到文件中。

 1 worker_processes  1;
 2
 3 events {
 4 worker_connections  1024;
 5 }
 6
 7 http {
 8     include       mime.types;
 9     default_type  application/octet-stream;
10     sendfile        on;
11     keepalive_timeout  65;
12     gzip  on;
13     upstream  clusterApp.com {
14         server    127.0.0.1:18080  weight=1;
15         server    127.0.0.1:28080  weight=2;
16     }
17
18     server {
19         listen       8080;
20         server_name  localhost;
21         location / {
22             proxy_pass http://clusterApp.com;
23             proxy_redirect default;
24         }
25         error_page   500 502 503 504  /50x.html;
26         location = /50x.html {
27             root   html;
28         }
29 }
30
31 } 

1.3.2. 安装Memcached

1、准备Memcached,解压即可

1.3.3. 安装Tomcat

1、准备两个tomcat

2、修改conf/server.xml的端口,可随意设置,只要保证两个tomcat可以正常跑起来。

3、下载memcached需要的jar包放到tomcat目录下的conf/lib下。所需jar如下:

说明:
其他版本下载链接(来自网络日志http://blog.csdn.net/remote_roamer/article/details/51133790)

#下载 memcached-session-manager jars to tomcat
http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/1.9.5/memcached-session-manager-1.9.5.jar
http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc8/1.9.5/memcached-session-manager-tc8-1.9.5.jar

# 使用memcached 的时候要用到的jar文件
http://repo1.maven.org/maven2/net/spy/spymemcached/2.11.1/spymemcached-2.11.1.jar

# 使用javolution-serializer的时候用到的jar文件下载
http://repo1.maven.org/maven2/de/javakaffee/msm/msm-javolution-serializer/1.9.5/msm-javolution-serializer-1.9.5.jar
http://www.java2s.com/Code/JarDownload/javolution/javolution-5.5.1.jar.zip

# 下面是使用kryo-serializer的时候用到的jar文件下载
http://repo1.maven.org/maven2/de/javakaffee/msm/msm-kryo-serializer/1.9.5/msm-kryo-serializer-1.9.5.jar
http://repo1.maven.org/maven2/de/javakaffee/kryo-serializers/0.9/kryo-serializers-0.9.jar

#(相配合的kryo只能用3.+的版本。)
http://repo1.maven.org/maven2/com/esotericsoftware/kryo/3.0.3/kryo-3.0.3.jar
http://repo1.maven.org/maven2/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar
http://repo1.maven.org/maven2/com/esotericsoftware/reflectasm/1.11.3/reflectasm-1.11.3.jar
http://repo1.maven.org/maven2/org/ow2/asm/asm/5.1/asm-5.1.jar

4、在tomcat的conf/contex.xml文件中的context节点下追加如下内容。

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                sticky="false"
                memcachedNodes="n1:localhost:11211"
                failoverNodes=""
                requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico)$"
                sessionBackupAsync="false"
                sessionBackupTimeout="500"
                transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
        />

如图:

1.4. 测试jsp文件编写

新建index.jsp文件,放到两个tomcat的webapps/ROOT目录下(或自建项目存放)。内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
        <h3>1、显示信息</h3>
        <table border="1px">
            <tr>
                <td>Nginx</td>
                <td><% out.println(request.getServerName());%></td>
            </tr>
            <tr>
                <td>Tomcat</td>
                <td><% out.println(request.getLocalAddr()+ " : "+request.getLocalPort()); %></td>
            </tr>
            <tr>
                <td>sesion ID</td>
                <td><% out.println(session.getId());%></td>
            </tr>
            <tr>
                <td>参数列表</td>
                <td>
                    <%
                        String dataName = request.getParameter("dataName");
                        if (dataName != null && dataName.length() > 0) {
                                String dataValue = request.getParameter("dataValue");
                                session.setAttribute(dataName, dataValue);
                        }
                        System.out.println("Session列表");
                        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);
                        }
                %>
                </td>
            </tr>
        </table>
        <h3>2、参数设置</h3>
        <form action="index.jsp" method="POST">
                参数名<input type="text"  name="dataName"> <br/>
                参数值<input type="text"  name="dataValue"> <br/>
                <input type="submit" value="提交">
        </form>
</body>
</html>

1.5. 启动

1.5.1. 启动Memcached

cmd下,进入安装目录。第一次需要先执行memcached.exe -d install安装,后面直接用memcached.exe -d start启动。示例:

d:

cd  D:\java\tomcatJiQun\memcached

memcached.exe -d install

memcached.exe -d start

memcached.exe -d stop

1.5.2. 启动Nginx

cmd下,进入安装目录。示例:

d:

cd D:\java\tomcatJiQun\nginx-1.13.9

start nginx

nginx -s stop

注意:

1、也可以通过启动安装目录下nginx.exe启动时候,可能出现闪退现象。此时查看nginx安装目录下的error.log看看是否有错误日志,或者检查任务管理器是否有nginx的后台进程存在。如下图:

常用命令说明:

验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

1.5.3. 启动Tomcat

直接点击startup.bat启动两个tomcat。

1.6. 访问

打开浏览器访问url:http://localhost:8080/index.jsp

需要下载演示包 " tomcatJiQun.rar " 的朋友看这里 链接:https://pan.baidu.com/s/1i5XTaEL 密码:w8el

下载后解压到 D:\java下即可。

原文地址:https://www.cnblogs.com/xmqa/p/8466723.html

时间: 2024-10-31 16:57:48

Nginx+Tomcat+Memcached负载均衡和session共享的相关文章

nginx+tomcat+redis负载均衡及session共享

概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.org/download/nginx-1.6.0.tar.gz 负载均衡 commons-pool-2-2.4.2.jar http://mirrors.hust.edu.cn/apache//commons/pool/binaries/commons-pool2-2.4.2-bin.tar.gz j

nginx+tomcat+redis负载均衡,实现session共享

实验环境: 系统: centos 7.4 3.10.0-327.el7.x86_64 docker: 18.03.0-ce docker-compose:docker-compose version 1.21.0 redis: 4.0.9 nginx: 1.12.2 tomcat:8.5.30 jdk:1.8.161 基础理论 session 统一方案:1.单机的session会话保持机制如nginx的ip-hash,如果单个机器下线,那么session将会全部丢失2.session共享,如to

nginx+tomcat实现负载均衡以及session共享(linux centos7环境)

一.nginx的安装 1.准备三份tomcat tomcat1 设置端口 8080 tomcat2 设置端口 8081 tomcat3 设置端口 8082 2. 下载nginx 3. 解压到/home目录下 并重命名为nginx 4. cd /home/nginx  进入nginx目录 5. ./configure --with-http_stub_status_module 进行初始化配置. 如提示PCRE错误,需要手动安装PCRE,见 http://www.linuxidc.com/Linu

haproxy+tomcat实现负载均衡以及session共享(linux centos7环境)

一.安装HAProxy 1.进入home目录,下载最新haproxy安装包. cd /home wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz 2.解压: tar -zxvf haproxy-1.4.24.tar.gz 重命名为haproxy mv haproxy-1.4.24.tar.gz haproxy 创建目录/usr/local/haproxy mkdir /usr/local/haproxy 3.安装

Nginx+Tomcat+Memcached负载均衡配置完整流程(多方总结,亲测可用)

Nginx+Tomcat+Memcached负载均衡配置完整流程: 前言: Nginx实现Tomcat的负载均衡和利用memcached实现session共享. 首先配置tomcat,JDK 将jdk,tomcat 放入站点/opt目录中 安装JDK cd /opt chmod 755 jdk-6u45-linux-x64-rpm.bin ./jdk-6u45-linux-x64-rpm.bin java -version      //检验版本 安装Tomcat tar -zxf apache

nginx之 nginx + tomcat + redis 负载均衡且session一致性

说明: 本文描述的是 nginx + tomcat + redis 实现应用负载均衡且满足session一致性,从安装到配置的全部过程,供大家学习!nginx 代理服务器ip: 10.219.24.26tomcat_1 应用服务器ip与端口: 10.219.24.21:8080 tomcat_2 应用服务器ip与端口: 10.219.24.21:8081redis 缓存服务器ip: 10.219.24.23 一. nginx-1.9.7 编译安装 下载地址: http://nginx.org/d

Nginx+Tomcat+Memcache实现负载均衡及Session共享

第一部分 环境介绍 部署环境: Host1:Nginx.Memcached.Tomcat1 Host2:Tomcat2 Tomcat_version:8.0.38 第二部分 Nginx+Tomcat实现负载均衡 1.nginx及tomcat的安装省略 2.nginx负载均衡配置: http标签中定义tomcat集群: upstream tomcat_server { server 101.200.229.38:8080; server 101.200.162.214:8080; } server

Nginx+Tomcat7+Memcached负载均衡集群+session共享

Nginx+Tomcat7+Memcached负载均衡集群服务搭建 操作系统:CentOS6.5     本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat7+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat7负责实际服务,Memcached负责同步Tomcat7的Session,达到Session共享的目的.1.安装NginxNginx官网:http://nginx.org/下载最新稳定版本.在安装Nginx之前,需要先安装gcc. openssl

Nginx+Tomcat服务器负载均衡实践方案

1.    为何选择Nginx+Tomcat做负载均衡? 1.1. Nginx是什么? Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户