nginx+tomcat+memcached

一 环境配置

系统环境:

rhel6.5 ,selinux和iptables均为disabled

主机情况:

node1: 172.25.254.1:nginx tomcat memcached

node2:172.25.254.2:tomcat memcached

软件包下载网站:

http://www.nginx.org

http://code.google,com/p/memcached-session-manager/

二 软件介绍:

tomcat简介:

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。tomcat是用来处理session的软件,交叉存储数据。

memcached简介:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。memcached与tomcat无关系,属于两个单独的软件。

工作原理:

Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩溃时也不会丢失 session 会话,避免单点故障。

三 操作步骤:

1.nginx的安装

在server1上,下载nginx-1.10.1.tar.gz,并解压

cd nginx-1.10.1/

vim src/core/nginx.h  #去掉nginx版本

vim auto/cc/gcc    ##注释掉debug下一行(179行)

因为要二进制编译nginx,故需提前安装所需软件

二进制编译,加sticky模块

make && make install ,即可

2.tomcat安装并运用

下载安装包jdk-7u79-linux-x64.tar.gz

解压 tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/  ##解压到固定路径

做软连接

配置路径

更新文件

查看路径

编写简单的JAVA脚本,方便检测

java test #检测java

Hello World! #检测成功

解压tomcat包到固定路径

bin /.startup.sh #开启tomcat服务,注意,这条命令只能在/usr/local/tomcat下执行才有效

在服务器上172.25.254.1:8080,检测是否成功

编写jsp,默认访问8080端口

重启nginx,并加载

在服务器上172.25.254.1/index.jsp,连接tomcat服务

新编写test.jsp,重新检测tomct服务

firefox上172.25.254.1/test.jsp,内容为当前的时间

2.1 tomcat的负载均衡

重新编写jsp,为tomcat主页

方便检测到server2上

在server2上(重复server1上的操作)

解压jdk,tomcat

编写路径

加载 文件

做软连接

在服务器上172.25.254.1/test.jsp

实现轮循

2.2 nginx添加sticky模块--cookie保持会话

sticky模块:PHP运行在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接。使用什么方式来实现这种连接呢,常见的有使用nginx自带的 ip_hash来做,但如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每 次访问都粘滞在同一台服务器。如果基于cookie模块,那么,每台电脑都会有不同的cookie,在保持长连接的同时还保证了服务器的压力均衡,nginx sticky值得推荐。

cookie:有时也用其复数形式cookies,指某网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2109和2965中的都以废弃,最新取代的规范是RFC6265。(可以叫浏览器缓存)cookie负载均衡相比iphash来说,其中一个特点比较明显,就是内网nat的均衡。

session:在计算机中,尤其是在网络应用中,称为“会话控制”。session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的web页之间跳转时,存储在session对象中的变量将不会丢失,而是在整个用户会话中一致存在下去。当用户请求来自应用程序的web页时,如果该用户还没有会话,则web服务器将自动创建一个session对象。当会话过期或被放弃时,服务器将终止该会话。session对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在session对象中。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值