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 zxvf pcre-8.36.tar.gz

cd pcre-8.36

./configure

make && make install

2.安装zlib库

tar zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make && make install

3.安装openssl

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

tar zxvf openssl-1.0.1c.tar.gz

4.安装nginx 注意指定prce zlib openssl原码包位置

tar zxvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure --prefix=/usr/local/nginx \

--with-http_ssl_module \

--with-pcre=/root/pcre-8.36 \

--with-zlib=/root/zlib-1.2.8  \

--with-openssl=/root/openssl-1.0.1c

make && make install

5.安装成功后配置

vi /usr/local/nginx/conf/nginx.conf 修改配置文件

#user  nobody;

worker_processes  2;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

worker_rlimit_nofile 65535;

events {

use epoll;

worker_connections  65535;

}

http {

include       mime.types;

default_type  application/octet-stream;

#log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

#                  ‘$status $body_bytes_sent "$http_referer" ‘

#                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;

#access_log  logs/access.log  main;

sendfile        on;

#tcp_nopush     on;

#keepalive_timeout  0;

keepalive_timeout  150;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

#gzip  on;

gzip  on;

##cache##

client_max_body_size 10m;

client_body_buffer_size 1m;

proxy_connect_timeout 5;

proxy_read_timeout 60;

proxy_send_timeout 5;

proxy_buffer_size 64k;

proxy_buffers 4 128k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 1m;

proxy_temp_path /home/temp_dir;

proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

##end##

#server {

#   listen       80;

#   server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

#  location / {

#     root   html;

#    index  index.html index.htm;

# }

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html

#

#error_page   500 502 503 504  /50x.html;

#location = /50x.html {

#   root   html;

#}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

#    proxy_pass   http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

#    root           html;

#    fastcgi_pass   127.0.0.1:9000;

#    fastcgi_index  index.php;

#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

#    include        fastcgi_params;

#}

# deny access to .htaccess files, if Apache‘s document root

# concurs with nginx‘s one

#

#location ~ /\.ht {

#    deny  all;

#}

#}

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

#    listen       8000;

#    listen       somename:8080;

#    server_name  somename  alias  another.alias;

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

# HTTPS server

#

#server {

#    listen       443;

#    server_name  localhost;

#    ssl                  on;

#    ssl_certificate      cert.pem;

#    ssl_certificate_key  cert.key;

#    ssl_session_timeout  5m;

#    ssl_protocols  SSLv2 SSLv3 TLSv1;

#    ssl_ciphers  HIGH:!aNULL:!MD5;

#    ssl_prefer_server_ciphers   on;

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

upstream wazert.com {

server 127.0.0.1:8080;  #tomcat1后面安装配置

server 127.0.0.1:8090;   #tomcat2

}

server {

listen  80;

server_name www.test1.com; #域名

location / {

root   html;

index  index.html index.htm;

proxy_pass http://wazert.com;

#       proxy_set_header  X-Real-IP  $remote_addr;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

}

location ~ .*\.(gif|jpg|png|htm|html|css|ico|flv|swf)(.*) {

proxy_pass http://wazert.com;

proxy_redirect off;

proxy_set_header Host $host;

proxy_cache cache_one;

proxy_cache_valid 200 302 1h;

proxy_cache_valid 301 1d;

proxy_cache_valid any 10m;

expires 30d;

proxy_cache_key $host$uri$is_args$args;

}

}

}

二、memcached安装

yum -y install libevent libevent-devel

tar zxvf memcached-1.4.22.tar.gz

cd memcached-1.4.22

./configure --prefix=/usr/local/memcached

make && make install

启动memcached ip为172.19.0.102 根据自己的环境端口11211可以根据自己需要修改不同端口

/usr/local/memcached/bin/memcached -d -m 1024 -u root -l 172.19.0.102 -p 11211 -c 1024 -P /tmp/memcached.pid

测试一下如下说明成功

telnet 172.19.0.102 11211

Trying 172.19.0.102...

Connected to 172.19.0.102.

Escape character is ‘^]‘.

三、安装jdk

tar zxvf jdk-7u21-linux-x64.tar.gz

mv  jdk1.7.0_21 /opt/jdk

配置vi /etc/profile 增加到环境变量中

在最后面增加

JAVA_HOME=/opt/jdk

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

生效环境变量

source /etc/profile

java -version 查看是版本是否生效

java version "1.7.0_21"

Java(TM) SE Runtime Environment (build 1.7.0_21-b11)

Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

四、安装与配置tomcat

1.安装tomcat

tar zxvf tomcat7.tar.gz

mv apache-tomcat-7.0.29 /opt/tomcat1

2.添加mem和msm的依赖jar包

把包下载后上传/opt/tomcat1/lib/ 目录下

3、配置tomcat

cd  /opt/tomcat1/conf

vi context.xml

增加<Context></Context>之间      注意:172.19.0.102 11211 是memcached端口

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:172.19.0.102:11211"

requestUriIgnorePattern=".*/.(png|gif|jpg|css|js|swf|flv)$"

sessionBackupAsync="false"

sessionBackupTimeout="100"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"/>

修改vi server.xml

<!-- You should set jvmRoute to support load-balancing via AJP ie :

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

-->

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

五、配置tomcat集群上面配置好后拷贝一份

cp  -r  tomcat1  tomcat2

cd tomcat2/conf/

修改vi server.xml配置把端口配置不同的

1. 找到如下把8005修改成8006

-->

<Server port="8005" shutdown="SHUTDOWN">

2.找到如下把8080修改成8090根据自己来配置,修改后的8090与nginx配置一样

-->

<Connector port="8090" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

3.找到如下把8009修改成8010

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

4. 找到如下把tomcat1修改成tomcat2

-->

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

六、启动tomcat集群

启动tomcat1

sh /opt/tomcat1/bin/startup.sh

启动tomcat2

sh /opt/tomcat2/bin/startup.sh

netstat -tunlp查看tomcat集群启动成功

tcp        0      0 :::8080                     :::*                        LISTEN      22911/java

tcp        0      0 :::8090                     :::*                        LISTEN      22946/java

查看8080与8090说明成功

七、启动 nginx

/usr/local/nginx/sbin/nginx 启动

/usr/local/nginx/sbin/nginx -s reload  重启

测试session是否共享

1.cd /opt/tomcat1/webapps/ROOT/

mkdir test

cd test

vi index.jsp

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<html><head><title>Cluster Test</title></head>

<body>

<%

//HttpSession session = request.getSession(true);

System.out.println(session.getId());

out.println("<br> SESSION ID:" + session.getId()+"<br>");

%>

</body>

2.cd /opt/tomcat2/webapps/ROOT/ 把tomcat1 test目录拷贝过来

cp -r /opt/tomcat1/webapps/ROOT/test ./

打开网页

刷新几次看看session iD不变,就成功了,如果变了可能配置问题。以上图说明session共享了

telnet 172.19.0.102 11211

stats

时间: 2024-08-04 18:30:37

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 系统采用一台服务做测试 阅读全文 更多java,java学习,java面试题 http://techfoxbbs.com

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配置文件各个属性的详细说明:

100513、nginx+tomcat集群+session共享(linux)

第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc openssl-fips-2.0.2.tar.gz zlib-1.2.7.tar.gz pcre-8.21.tar.gz 下载linux版本的安装包,如果不下载安装包,可以在线安装命令: yum install gcc-c++ yum install -y pcre  pcre-devel yum inst

160512、nginx+多个tomcat集群+session共享(windows版)

第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start nginx或D:\nginx+tomcat\nginx-1.9.3>nginx.exe注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作. 2.停止: D:\nginx+tomcat\nginx-1.9.3>nginx.exe -s stop或D:\nginx+tomca

windows下nginx+tomcat+memcache负载均衡tomcat集群session共享搭建

使用nginx 做负载均衡 memcached处理session共享  环境 windows 7  X64  java : jdk-7windows-x64.rar  nginx : http://nginx.org/en/download.html ,这里我们推荐下载稳定版(stable versions),本文采用nginx-1.8.0  tomcat:apache-tomcat-7.0.63 在同一台电脑上配置多个tomcat(本次采用两个tomcat来示范),修改 conf/server

使用memcached实现tomcat集群session共享

环境centos6.7,下载安装必要的软件:yum -y install epel-release(tomcat7在此源上,tomcat7是现在主流版本) yum -y install tomcat  直接下载tomcat7,   yum -y install java-1.7.0-openjdk-devel (tomcat需要运行在java虚拟机上) vim /etc/tomcat/server.xml   修改配置文件 <Host name="web.com" appBase

搭建了Nginx + Memcached + Tomcat 集群记录

一:环境 Memcached是memcached-1.2.6-win32-bin,下载链接: http://www.jb51.net/softs/205838.html#down Tomcat6: 二:Memcached配置 1. Memcached的安装 将安装包memcached-1.2.6-win32-bin解压到X:/目录下面,重命名为memcached. 打开命令提示符,进入X: /memcached的目录,输入安装命令"memcached.exe –d install",安

Shiro+Redis实现tomcat集群session共享

1. spring+shiro https://www.cnblogs.com/hafiz/p/7228294.html 2.springboot+shiro+redis项目整合 原文地址:https://www.cnblogs.com/newlangwen/p/10255744.html

Nginx+Tomcat7(tomcat6)+Memcached集群Session共享

Nginx+Tomcat7+Memcached集群Session共享 原理: 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对session的共享. 下载 1.      下载nginx 2.      下载tomcat7 (本文介绍的是tomcat7的session共享,如果是tomcat6,配置是不成功的,需要更换其中的jar包,m