实战项目memcached+tomcat+session+nginx在工作中的应用和配置

环境介绍:公司根据实际需要搭建一个购物网站,当用户购物时可以 将不同商品,放到同一个购物车中进行同时付款。

环境的搭建:

外网用户  IP地址:1.1.1.1  主机名:fanxiaohui  用户访问网站http://www.taobao.com

使用nginx实现负载均衡,由于网页是用JAVA开发的所以选用tomcat搭建网站服务,由于用户在购物时http是一个无状态的协议,不同的商品都是一个新的连接,默认不会把几个商品放到同一个购物车中,无法进行统一结账,为了能使服务器能够认识是同一个客户端发起的请求,公司有多台服务器,为了使所有服务器都认识同一客户端,所以用memcached+session做缓存服务器,同上为了memcached出现故障,所以使用memcached_bakup做备份,可以对访问的网页进行session_id进行标记,以保证用户在不同服务器或者在同一台服务器上都可以进行付款。

内部网站的构建:

nginx服务器IP地址:192.168.1.254  IP地址:1.1.1.254  主机名:localhost

tomcat1服务器IP:192.168.1.1 主机名:fanlj1

tomcat2服务器IP:192.168.1.2 主机名:fanlj2

memcached服务器IP:192.168.1.10 主机名localhost

memcached_backup服务器IP:192.168.1.20 主机名localhost

实验目的:memcached+tomcat+session+nginx在实际中的应用和配置。

实验(一)

搭建2台tomcat服务器

软件包:

memcached+session-package.zip

apache-tomcat-6.0.32.tar.gz  tomcat主包

jdk-6u27-linux-i586.bin    tomcat环境包

1。安装环境包,安装时出现一下错误显示安装./install.sfx.4606时没有 /lib/ld-linux.so2文件。

解决的方案是首先查看是否有这个文件或者目录

查看后 确实没有这个文件和目录,这个文件是有glibc软件提供的,查看glibc的包是否已安装,但是系统还是找不到这个文件,而系统的软件安装包中除了有一下的软件包外还有i686的软件包

查看系统镜像中的glibc软件包,安装i686glibc软件包。

安装 完毕后在执行jdk-6u27-linux-i586.bin

安装完成后会生成一个文件夹jdk1.6.0_27,把文件夹放到/usr/local/jdk.

查看jdk的版本信息

定义系统环境变量,来调用安装目录下的内容,每打开一个终端都
可以调用目录下的内容。export定义关键字,JRE_HOME指定jdk的安装目录,JAVA_BIN指定jdk可执行命令存放的位置,PATH指定
系统环境变量,CLASSPATH类文件存放
的路径和名字,dt.jar和tools.jar是用JAVA写好的命令,是tomcat运行的要调用的程序,最后重新
定义全局变量。source为重新加载系统环境变量的文件。

2.安装tomcat主软件包,由于该软件包是免安装的,所以对解压/usr/local/目录下,使系统在启动时就可以加载。

webapps/ROOT/      网页目录
logs                          日志目录
conf                          配置文件存放目录
bin                            可以执行命令

bin/shutdown.sh      停止服务
bin/startup.sh          启动服务

3.启动tomcat服务

4.在客户端进行测试,本实验在tomcat本机进行测试,在浏览器中输入http://localhost:8080  出现一下界面

点击Tomcat Manager可以对进行 管理,点击后要求输入用户名和密码才能进入。由于没有设置用户名和密码所以点击取消,会出现一下界面,根据提示进行操作,修改配置文件.

配置文件修改后重新启动服务

启动完成后重新刷新页面

建立测试页进行测试

在浏览网页上进行测试,192.168.1.1为网页内容,上面的数字为seesion_id。

tomcat2的搭建同上

检查测试页面内容如下:

实验(二)

搭建nginx服务器

实验目的:nginx用来实现tomcat的负载均衡

配置nginx反向代理,把用户的连接请求平均的分发给2台tomcat服务器

1.查看编译环境是否安装。

2.安装软件包,--with-http_ssl_module指定用户可以用https访问的模块,--with-http_stub_status_module指定通过web页面的方式查看nginx被访问的信息情况的模块

通过以上配置安装时出现以下错误http
rewrite(地址重写模块需要pcre库,要求安装PCRE库),rewrite  地址重写   修改客户端访问自己的url
路径,使用perl风格正则表达式去匹配用户访问自己URL源路径 (PCRE library)。

查看系统安装的pcre包有那些,软件包中有那些,如果没有全部安装用yum安装,pcre-devel软件包为pcre软件提供库文件。

再次配置时又出现错误,错误如下

安装openssl库文件

安装make&make install

启动nginx服务

去除nginx主配置文件的空行和以#开头的行

修改主配置文件,定义一个工作组,把用户的连接请求平均的分发给2台tomcat服务器

测试主配置文件是否有错

重启nginx服务

在客户端进行测试,查看是否可以访问tomcat1和tomcat2的网页信息。

实验(三)

搭建memcached服务器

实验目的:当用户访问tomcat服务器时,tomcat首先查看memcached服务器上有用户的session_id,如果有访问过,memcached服务器上就有用户的session_id.

使用memceached源码包:memceached-package.zip

1.在192.168.1.10上安装memcached服务,检查编译环境是否安装

2.安装环境包libevent-2.0.15-stable.tar.gz,解压软件包。

3.安装主包

4.查看memcached的帮助信息出现一下错误,没有加载libevent文件

解决上述错误的方法,写一个库文件所在位置配置文件放到系统的配置文件下/etc/ld.so.conf.d/

5.启动memcached服务

查看是否已启动

在服务器上192.168.1.20上搭建memcached2的服务同上

查看memcached2的服务

实验(四)

实验目的:在2台tomcat 服务器上安装连接memcached服务器的连接工具msm

1.复制连接工具的连接程序

将连接程序放到/usr/local/apache-tomcat/lib/

2.修改tomcat的配置文件告诉有几台memcached服务器,那台是访问的,那台是备份的,contest.xml为连接的配置文件,className定义连接时调用的类(就是刚才拷贝的东西),memcachedNodes定义memcached的节点(定义memcached服务器的IP和端口),failoverNodes定义的备用的那台,requestUrilgnorePattern定义后面的不往缓存里放,transcoderFactoryClass定义连接时调用的类名。

3.重新启动服务

4.客户端测试

测试备用memcached服务器是否生效

停止192.168.1.10上的memcached服务

测试

总结:当用户访问tomcat网站web页面时出现的session_id不变而且页面在变,说明是用一个用户在访问。

时间: 2024-08-02 02:48:18

实战项目memcached+tomcat+session+nginx在工作中的应用和配置的相关文章

Nginx+Memcached+Tomcat session会话共享

服务器说明: 192.168.1.8 tomcat1 memcached(虚拟机1) 192.168.1.9 tomcat2(虚拟机2) 192.168.1.200 nginx (本机) 对于tomcat+nginx的配置请参考博客:[Nginx-反向代理服务器]实践篇(三)之Tomcat+Nginx搭建集群 接下来我们来安装memcached,注意linux系统的用户权限问题 1.分别把memcached和libevent下载回来,放到/usr/src目录下: # cd /usr/src# w

Nginx反向代理+Tomcat+memcached实现session server

写在前面 前一篇文章为大家解释说明了会话的类型,今天这篇文章将带领大家一步一步实现一个简单的session server,主要是让大家理解session server的工作过程,当然了对于中小向站点,这个结构也完全够用了.本节主体结构: memcached-session-manager介绍 网络拓扑结构 Nginx反向代理配置 Tomcat配置 memcached配置 测试 错误分析 memcached-session-manager介绍 memcached-session-manager是一

tomcat session会话保持实验-之Nginx+tomcat+memcached

tomcat session会话保持实验-之Nginx+tomcat+memcached 实验要求 1.nginx+tomcat 负载均衡 2.memcached 会话保持 实验拓扑   ip网络规划 Nginxnode2:172.16.76.20 tomcatAnode3:172.16.76.30  memcached tomcatBnode4:172.16.76.40  memcached 基础配置   node2 [[email protected]~]# yum install ngin

nginx+memcached+tomcat集群 session共享完整版

nginx+memcached+tomcat集群 session共享完整版 集群环境 1.nginx版本 nginx-1.6.2.tar.gz 2.jdk 版本 jdk-7u21-linux-x64.tar.gz 3.tomcat 版本  7.0.29 4.memcached 版本 memcached-1.4.22.tar.gz 5. CentOS 6.5 系统采用一台服务做测试 一.nginx安装 安装依赖包 yum -y install gcc gcc-c++ 1.安装pcre库 tar z

Centos7下Nginx+Tomcat配置反向代理,使用memcached解决session一致性问题

一.session一致性问题 使用集群方案解决网站高并发问题时,就会部署多台应用服务器.当用户第一次通过客户端(如:浏览器)访问服务器时,服务器会创建对应的session, 使用Nginx反向代理,假如用户A第一次访问站点,被反向代理到服务器一处理,服务器一创建对应sessionA记录信息,用户A再次访问站点时,被反向代理到服务二处理, 而服务器二没有记录用户A的session信息,就会新创建sessionB,导致用户A之前操作丢失. 我们可以通过让多个服务器统一到同一个地方新建session和

windows+nginx+memcached+tomcat做负载均衡

首先,我们明确目标,做Tomcat集群的目的是为了提供更高的负载能力,把访问均摊到不同的服务器上. 直观地来说,就是访问test.localhost.com时,nignx会随机将访问请求分发到tomcat1,tomcat2,为了保持session同步,使用memcached去管理session. 为此我们准备的配置清单是: windows x 1 nginx x 1 memcached x 1 tomcat x 2 mysql x 1 部署的架构图如下: 首先,我准备了一个Java Web项目.

Nginx+Memcached+Tomcat集群配置

1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性. 安装和配置Nginx的简单方式如下: 1)      下载并解压Nginx到本地目录:http://nginx.org/en/download.html 2)      对Nginx的配置主要是对它的配置文件/conf/nginx.conf的修改.如下链接是nginx.conf配置文件各个属性的详细说明:

Tomcat基于MSM+Memcached实现Session共享

前言 在Tomcat集群中,当一个节点出现故障,其他节点该如何接管故障节点的Session信息呢?本文带来的解决方案是基于MSM+Memcached实现Session共享. 相关介绍 MSM MSM--Memcached Session Manager是一个高可用的Tomcat Session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用Memcached存取Session,以实现高可用. 工作原理 Sticky Session(黏性) 模式

【Tomcat】Tomcat + Memcached 实现session共享

概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解决方案 环境 操作系统:Linux( centOS 6..5 版) 软件:Tomcat7    Memcached 实现原理 Tomcat + Memcached 实现session共享流程图 配置 安装Tomcat 2个和Memcached 1个,参考[Linux]Tomcat安装及一个服务器配置