Nginx + Tomcat + Memcache 实现session共享

1. Nginx 部署

1.上传源码包到服务器,解压安装
下载地址:http://nginx.org/en/download.html 2.安装依赖包
yum install pcre pcre-devel openssl openssl-devel gcc gcc-c++ -y 3.解压安装 tar zxvf nginx-1.10.3.tar
cd nginx-1.10.3
编译(具体的模块可以自行添加)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module && make && make install 4.添加PHP解析(前提是已经安装了PHP环境) 编辑nginx.conf文件,将下面内容取消注释
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/work/nginx/html$fastcgi_script_name;
include fastcgi_params;
} 5.启动
/usr/local/nginx/sbin/nginx
nginx默认没有启动脚本(可以自行编写一个)
将/usr/local/nginx/sbin/nginx加在/etc/rc.local中,让其开机自启

2.Tomcat部署

1.上传源码包到服务器,直接解压安装
下载地址:http://tomcat.apache.org/ 2.解压到指定目录即可
tar zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local/ 3.启动 bin/startup.sh 下面是一个启动脚本(直接执行 sh tomcatctrl.sh start|stop) 可以启停tomcat
#!/bin/sh
# Tomcat init script for Linux.
#
# description: The Apache Tomcat servlet/JSP container.
#JAVA_HOME=/home/work/jdk/jdk1.8.0_20/
#CATALINA_HOME=/home/work/rap_tomcat8/
CATALINA_HOME=/home/work/tomcat_dianshang
export JAVA_HOME CATALINA_HOME
#exec $CATALINA_HOME/bin/catalina.sh $*
case $1 in
start)
sh $CATALINA_HOME/bin/catalina.sh start && tail -f logs/*;;
stop)
sh $CATALINA_HOME/bin/catalina.sh stop ;;
restart)
$CATALINA_HOME/bin/catalina.sh stop
sleep 5
sh $CATALINA_HOME/bin/catalina.sh start&& tail -f logs/*;;
*)
echo "Usage: `basename $0` (start|stop|restart)"
exit 1
;;
esac

3.Memcache部署

1.上传源码包到服务器
下载地址:http://memcached.org/downloads memcache需要libevent的支持,所以也需要下载libevent
下载地址:http://libevent.org/ 2.解压安装 首先安装libevent
tar -zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make && make install 接着安装memcache
tar -zxvf memcached-1.5.4.tar.gz
cd memcached-1.5.4
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make && make install 3.启动
bin/memcached -p 11211 -m 64m -d 4.查看端口和进程,确定是否启动成功

4.配置session共享

1.首先需要配置nginx,将请求转发到tomcat上面
其中vhosts是我自己新建的,为了配置虚拟主机,管理方便
cd /home/work/nginx/vhosts
vim test.conf
server{
listen 80 default;
server_name dianshang_server;
access_log logs/dianshang.log main;
location / {
proxy_pass http://dianshang_server;
}
} upstream dianshang_server{
server 192.168.1.211:8091;
}
接着修改nginx.conf的配置,让其加载我们刚才配置的虚拟主机
cd /home/work/nginx/conf
vim nginx.conf
include /home/work/nginx/vhosts/*.conf; 在这贴一个nginx的主配置文件
user work;
worker_processes 8;
worker_rlimit_nofile 65535;
error_log logs/error.log info;
pid logs/nginx.pid; events {
use epoll;
worker_connections 20480;
} http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" [$request_uri] $status $body_bytes_sent $request_body '
'"$http_referer" "$http_user_agent" $http_x_forwarded_for '; sendfile on;
keepalive_timeout 65;
client_body_timeout 15;
send_timeout 25;
client_max_body_size 8m;
server_tokens on; #隐藏nginx版本信息 server { location ~* \.(.php|.html)$ {
root html;
index index.html index.htm index.php index.jsp;
} location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/work/nginx/html$fastcgi_script_name;
include fastcgi_params;
} } fastcgi_connect_timeout 30;
fastcgi_send_timeout 30;
fastcgi_read_timeout 30;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain text/css application/x-javascript application/xml; include /home/work/nginx/vhosts/*.conf; } 2.tomcat配置
编辑context.xml文件,追加下面的内容
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
sticky="false"
lockingMode="auto"
memcachedNodes="n1:192.168.1.211:11211 n2:192.168.1.212:11211"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
copyCollectionsForSerialization="false" /> 3.添加相应的包 添加到tomcat中的lib下
memcached-session-manager-1.8.1.jar
memcached-session-manager-tc7-1.8.1.jar
msm-flexjson-serializer-1.8.1.jar
msm-javolution-serializer-1.8.1.jar
msm-kryo-serializer-1.8.1.jar
msm-serializer-benchmark-1.8.1.jar
msm-xstream-serializer-1.8.1.jar 4.新建一个获取session的页面
在tomcat下的webapps/ROOT下新建个session.jsp
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><%= application.getServerInfo() %></title>
</head>
<body>
当前的session <%=session.getId()%>
当前主机 <%=request.getLocalAddr()%>
</body> 4.访问测试,如果session一样说明OK

Nginx+Tomcat+Memcache 实现session共享的更多相关文章

  1. Nginx+tomcat+redis实现session共享

    Nginx+tomcat+redis实现session共享 1,安装nginx,使用yum -y install nginx 这是epel源中的,需要安装epel源. 2,配置nginx. 在ngin ...

  2. Nginx+Tomcat集群+session共享

    Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...

  3. Nginx+Tomcat+Memcached实现session共享

    实验环境: server1:nginx tomcat memcached server2:tomcat memcached Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入 ...

  4. nginx+tomcat+redis完成session共享

    本文记录nginx+redis+tomcat实现session共享的过程 nginx安装:http://blog.csdn.net/grhlove123/article/details/4783467 ...

  5. nginx+tomcat+redis完成session共享(转载)

    转载:http://blog.csdn.net/grhlove123/article/details/48047735 tomcat7下基于redis的session共享所需jar包: http:// ...

  6. 160513、nginx+tomcat集群+session共享(linux)

    第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...

  7. Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享

    Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享 ============================= 蕃薯耀 2017年11月27日 http: ...

  8. 分布式Session共享(二):tomcat+memcached实现session共享

    一.前言 本文主要测试memcached实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port To ...

  9. 分布式Session共享(一):tomcat+redis实现session共享

    一.前言 本文主要测试redis实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port Tomcat ...

随机推荐

  1. python--基础知识点梳理(之数据结构)

    数据结构: # 按逻辑结构(面向问题)分为:集合结构.线性结构.树形结构.图形结构 # 按物理结构(面向计算机)分为: # 顺序存储结构(把数据元素放在地址连续的存储单元中,数据间的逻辑关系和物理关系 ...

  2. 【STM32H7教程】第18章 STM32H7的GPIO应用之跑马灯

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第18章       STM32H7的GPIO应用之跑马灯 本 ...

  3. hyper-v简介及安装使用

     前言:作为IT界的巨头,微软自己的虚拟化技术,也是微软第一个采用Vmware与CitrixXen一样基于hypervisor的虚拟化技术,有着自己可圈可点的地方,微软自己的虚拟化技术嘛,对windo ...

  4. ES6入门 阮一峰

    ECMAScript 6 入门 http://es6.ruanyifeng.com/#README 在线ES6转ES5 https://es6console.com/k11vgg1r/

  5. svn版本管理配置权限

    修改svn配置 编辑svnserve.conf文件 第19,20行删掉前面的#--意思就是打开 ancon-access = none  匿名用户不可读 auth-access = write 认证可 ...

  6. C# - VS2019通过重写pictureBox实现简单的桌面截图功能

    前言 通过创建客制化组件(继承pictureBox),新增属性和构造方法,实现屏幕截图时需要用到的功能点.再通过监控鼠标按下.移动和释放,来获取起始点区域.最后通过操作BMP图像,实现截图的新增.修改 ...

  7. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  8. C#中对文件File常用操作方法的工具类

    场景 C#中File类的常用读取与写入文件方法的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983 注: 博客 ...

  9. image-webpack-loader包安装报错解决

    在家里安装这个包,总是报错安装失败,换成最快的淘宝镜像也是如此,先卸载重新安装亦是如此,于是想到了原因,到了公司,公司的网是可以连接国外的,安装成功了! 也就是说,需要翻墙才可以装成功.

  10. android.os.Parcel.readByteArray NullPointerException

    报错信息: E/AndroidRuntime( 1626): java.lang.NullPointerException E/AndroidRuntime( 1626): at android.os ...