`

nginx+memcache+tomcat

 
阅读更多

一、安装Nginx

  下载nginx :nginx-1.4.7.tar.gz 放到~/Software目录

 

   # tar zxvf nginx-1.4.7.tar.gz
  # tar zxvf nginx-1.4.7.tar.gz
  # cd nginx-1.4.4
  #./configure --prefix=/usr/local/nginx

  # make
  # make install

 

安装成功后 /usr/local/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。
其中 Nginx 的配置文件存放于 conf/nginx.conf,
bin文件是位于 sbin 目录下的 nginx 文件。
确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功

 

如果出错,请参考 http://blog.sina.com.cn/s/blog_4ad7c2540101duql.html

 

二 配置Nginx + tomcat

 修改 /usr/local/nginx/conf/nginx.conf文件 :

 

worker_processes  2;


error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue
    use epoll;
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    access_log  logs/access.log;
   
###########################
    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;
 
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    tcp_nopush      on;
    tcp_nodelay     on;

    upstream localhost {
     #ip_hash
      server localhost:18081;
      server localhost:18080;
     }
##############################

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       9999;
        server_name  localhost;

       location / {
              proxy_connect_timeout   3;
              proxy_send_timeout      30;
              proxy_read_timeout      30;
                proxy_pass http://localhost;
            }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
上面配置中, 9999 是nginx的监听端口,即访问端口,18080和 18081是 tomcat的端口。

tomcat配置文件中

 <Connector port="18080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
这里使用的端口是 HTTP协议端口,而不是 apache跟 tomcat结合使用的ajp13协议端口

 测试,在tomcat的webapps下面新建一个 test.jsp,内容如下:

 

Welcome,Here!
<%
System.out.println("============tomcat3======"+new java.util.Date());

session.setAttribute("name3","tomcat3");
%>
tomcat3================<%=new java.util.Date()%>

<br>name3===${name3}</br>
<br>name4===${name4}</br>

 <br>i was created by tomcat3,my sesssion Id is <%=session.getId()%></br>

 

 另外一个tomcat中的 test.jsp文件内容如下:

Welcome,Here!
<%
System.out.println("============tomcat4======"+new java.util.Date());

session.setAttribute("name4","tomcat4");
%>
tomcat4================<%=new java.util.Date()%>

<br>name3===${name3}</br>
<br>name4===${name4}</br>

<br>i was created by tomcat4,my sesssion Id is <%=session.getId()%></br>

 

测试:访问 http://localhost:9999/test.jsp,可以看到 tomcat3 和tomcat4 交替访问。

但是sessionId每次都不同,两个tomcat之间没有做到共享。下面介绍用 memcache做session服务器。

 

 

三、安装 Memcache

 

1.安装memcache,需要先安装libevent

    http://libevent.org/ 下载最新稳定版 libevent,并安装:

     tar -zxvf ***.tar.gz 解压完之后,进入目录,

     ./configure --with-prefix=/usr

     make
     make install

   

    测试libevent是否安装成功:
   ls -al /usr/lib | grep libevent

 

 还不错,都安装上了。

 

2.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –with-libevent=/usr
# make
# make install

进行 bin目录,启动 memcache
方法如下:
./memcached -d -u nobody -m 512 127.0.0.1 -p 11211 

或者以如下方式启动:./memcached -d -u nobody -vv >>/tmp/memcached.log 2>&1

这样可以方便的查看 memcache日志。

 

四。配置memcache + tomcat

① 下载下面几个jar包,放到 tomcat的 lib目录中:

memcached-2.5.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
msm-javolution-serializer-1.5.1.jar

volution-5.5.1.jar

②修改 tomcat的 conf目录下的context.xml文件:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js){1}quot;" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"  copyCollectionsForSerialization="false"/>

 

启动memcache ,并打开日志(tail -f /tmp/memcached.log) ,访问http://localhsot:9999/test.jsp

就可以看到 tomcat交替访问,但是sessionId始终保持不变。即完成了session共享实验。

不过用自己的一个 项目放在两个tomcat中,发现一个登录之后,再进入home页的时候又提示请登录,暂时还没有解决问题。

 

Welcome,Here! tomcat3================Mon Jun 09 16:36:52 CST 2014
name3===tomcat3

name4===tomcat4

I was created by tomcat3,my sesssion Id is 96B904259F76AA8DBC7CE22AC2ACCDCA-n1.tomcat-3

 

经过仔细查看发现,96B904259F76AA8DBC7CE22AC2ACCDCA-n1.tomcat-3 这个才是看到的sessionId,前面的一串ID始终没有变化,但是后缀一个是 tomcat-3,另外一个是tomcat-4,所以这个可能是导致没有完全共享的原因。

 

 

 记录部分 memcache日志:

 

重启之后的访问

36: Client using the ascii protocol
<36 get ping-n1
>36 END
<36 get 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 sending key 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 END
<36 delete 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 DELETED
<36 set 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-4 2048 1798 634
>36 STORED

 

刷新可以看到:

<42 get ping-n1
>42 END
<42 get 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-4
>42 sending key 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-4
>42 END
<42 delete 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-4
>42 DELETED
<42 set 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3 2048 1800 634
>42 STORED

 

再刷新可以看到:

<36 get ping-n1
>36 END
<36 get 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 sending key 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 END
<36 delete 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-3
>36 DELETED
<36 set 9DDEE1A3A887BCA205FCA16E496A105B-n1.tomcat-4 2048 1800 634
>36 STORED

 

 

  

分享到:
评论

相关推荐

    nginx+tomcat+memcache

    基于nginx+tomcat+memcache的负载均衡架构

    tomcat+nginx+memcache集群

    tomcat+nginx+memcache高可用

    Nginx+Memcache+Tomcat集群(session共享)

    【Nginx+Memcache+Tomcat集群(session共享)】是一种常见的高可用性和负载均衡解决方案,主要用于提升Web应用的性能和可扩展性。这个配置利用Nginx作为反向代理和负载均衡器,Memcache作为分布式session存储,而...

    Nginx+Memcache+Linux+Tomcat集群

    在构建高性能的Web服务环境中,Nginx、Memcache、Linux和Tomcat的集群组合是一个常见的解决方案。这个集群架构能够提供高可用性、负载均衡以及缓存优化,从而提高系统的响应速度和处理能力。 首先,让我们详细了解...

    nginx+tomcat+memcached例子

    【标题】"nginx+tomcat+memcached例子"揭示了一个集成Web服务器技术的场景,其中Nginx作为前端代理服务器,Tomcat作为后端Java应用服务器,而Memcached则作为一个分布式内存缓存系统来提高整体性能。这个组合常用于...

    Nginx+tomcat6+memcache配置集群session共享所需jar包

    这个压缩包“Nginx+tomcat6+memcache所需jar包”提供了实现这一目标所需的组件。 首先,Nginx是一个高性能的反向代理服务器,常用于负载均衡,它能够将用户的请求分发到后端不同的服务器上,从而提高服务的响应速度...

    session共享 tomcat+nginx+memcache

    在构建分布式系统时,Session共享是一个关键问题,特别是在使用多台服务器(如Tomcat)和负载均衡器(如Nginx)的环境中。本压缩包提供的资源是为了解决这个问题,通过集成Memcached来实现Session的集中式管理,从而...

    Nginx+Tomcat7+Memcached集群Session共享

    Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...

    nginx+tomcat+memcache集群缓存配置及介质

    1 jdk安装及tomcat7解压缩安装配置 不用说明 2 下载nginx1 4 2 for win32 解压安装 3 下载memcached服务端for win32 解压安装 设成windows服务端 执行memcached exe d install 4 下载tomcat7对应的memcached所需jar...

    apache+jk+memcache+nginx分布式网站建设笔记

    ### Apache、Tomcat、Memcache与Nginx在分布式网站建设中的应用 #### Apache与Tomcat集成 Apache是一款广泛使用的Web服务器软件,而Tomcat是Apache基金会下的一个开源项目,主要作为Java应用程序的Servlet容器。...

    tomcat整合nginx负载均衡+memcache共享session全部程序包

    在构建高性能、高可用性的Web应用系统时,整合Nginx、Tomcat和Memcache是常见的一种技术架构。这个程序包“tomcat7+nginx+memcached”旨在实现通过Nginx进行负载均衡,以及利用Memcache来共享Tomcat服务器之间的...

    性能调优 海量并发 系统架构

    Apache+Tomcat+Session+Memcache 高性能群集搭建 J2EE性能调优 Jboss的优化配置 Memcached分布式缓存 Nginx+Tomcat 动静分离 Nginx+tomcat集群Memcached+Session复制 高性能高并发服务器架构 基于nginx的tomcat负载...

    nginx+apache+mysql+php+memcached+squid搭建门户网站

    Nginx的核心配置文件位于`/usr/local/server/nginx/conf/nginx.conf`。以下是一个简单的配置示例: ```nginx # 运行用户 user nobody nobody; # 启动进程数量 worker_processes 2; # 全局错误日志及PID文件 error...

    nginx+tomcat8.0+memcached1.5 session共享所需jar包

    在构建分布式系统时,session共享是一个关键问题,特别是在使用多个应用服务器如Nginx和Tomcat的情况下。本主题聚焦于如何使用Nginx、Tomcat 8.0和Memcached 1.5来实现session共享,确保用户在访问不同服务器时能够...

    Nginx+tomcat7.0.22+memcached

    使用Nginx做的负载均衡,memcache做高速cache,tomcat7.0.22做web容器环境下的session共享及缓存。 能够做到重启tomcatsession不失效或多个tomcat应用下session共享。 该RAR包包含了配置所需要的全部jar文件。

    nginx +tomcat7 +memcached 实现session共享所需要的JAR包亲测有效

    memcached-session-manager-1.9.5, kryo-3.0.3,asm-5.0.3等,我用的jdk是1.8,解决了tomcat7java.lang.NoSuchFieldError: attributes等 错误。

    阿里云服务器环境部署PHP+Mysql+Apache+Nginx+Tomcat

    nginx:1.4.4 apache:2.2.29、2.4.10 mysql:5.1.73、5.5.40、5.6.21 php:5.2.17、5.3.29、5.4.23、5.5.7 php扩展:memcache、Zend Engine/ OPcache jdk:1.7.0 tomcat:7.0.54 ftp:(yum/apt-get安装) phpwind...

    Memcache Session Manager + Tomcat8.5.6

    描述中提到的“Nginx+Tomcat8.5.6 + Memcache集群 kryo-serializer方式序列化 实现session共享”,进一步解释了架构的关键组成部分和策略。Nginx作为一个高性能的反向代理服务器,负责将用户请求分发到后端的Tomcat...

    Memcache Session Manager Tomcat8.5.6

    描述 "tomcat+nginx+memcache 集群所需要的jar包" 表明这是一个用于构建基于Tomcat应用服务器、Nginx反向代理服务器和Memcache缓存服务的集群环境所需的相关组件。在这个环境中,Nginx主要负责分发请求,而Tomcat...

    tomcat9+memcached+memcachedSessionManagerjar.zip

    描述中提到"nginx做tomcat负载均衡时",意味着这里涉及的是使用Nginx作为反向代理和负载均衡器,将来自用户的请求分发到后端的多个Tomcat服务器上。这样可以提高服务的可用性和响应速度,同时也为伸缩性提供了基础,...

Global site tag (gtag.js) - Google Analytics