转载自:http://alvin1.blog.51cto.com/6223380/1252619
一、Nginx部分
1.1、Nginx介绍
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。
Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可。
据说他当初是F5的成员之一,英文主页:http://nginx.net。
1.2、Nginx优点
Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢Nginx为我们选择了 epoll and kqueue作为开发模型.
Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验.
Nginx 是一个 安装非常的简单 , 配置文件 非常简洁(还能够支持perl语法), Bugs非常少的服务器:Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够 不间断服务的情况下进行软件版本的升级.
1.3、Nginx安装
到官网http://nginx.org/en/download.html下载最新的稳定版本,目前是0.7.67。
[root@localhost~]# wget http://nginx.org/download/nginx-0.7.67.tar.gz
--2010-09-2414:48:12-- http://nginx.org/download/nginx-0.7.67.tar.gz
Resolvingnginx.org... 81.19.68.137
Connecting tonginx.org|81.19.68.137|:80... connected.
HTTP requestsent, awaiting response... 200 OK
Length: 608462(594K) [application/octet-stream]
Saving to:`nginx-0.7.67.tar.gz'
100%[<========================================>]608,462 44.5K/s in 18s
2010-09-2414:48:32 (32.8 KB/s) - `nginx-0.7.67.tar.gz' saved [608462/608462]
[root@localhost~]# tar -zxvf nginx-0.7.67.tar.gz /解压压缩文件
[root@localhost~]# cd nginx-0.7.67 /进入安装文件目录
[root@localhostnginx-0.7.67]# ./configure –prefix=/usr/local/nginx /指定安装到/usr/local/nginx目录下,可用./configure –help查看需要哪些编译参数
[root@localhostnginx-0.7.67]#make /make
[root@localhostnginx-0.7.67]#make install /安装
[root@localhostnginx-0.7.67]# ll /usr/local/nginx/ /查看是否安装成功
drwxr-xr-x 2root root 4096 Sep 24 15:12 conf
drwxr-xr-x 2root root 4096 Sep 24 15:12 html
drwxr-xr-x 2root root 4096 Sep 24 15:12 logs
drwxr-xr-x 2root root 4096 Sep 24 15:12 sbin
[root@localhostnginx-0.7.67]#/usr/local/nginx/sbin/nginx –t /测试Nginx配置文件是否正确
[root@localhostnginx-0.7.67]#/usr/local/nginx/sbin/nginx /启动Nginx
下面验证Nginx是否正常启动,浏览器中输入nginx服务器地址,出现如下图说明nginx正常工作。
二、利用memcached配置Nginx、Tomcat实现负载均衡和session共享
Tomcat、memcached安装这里就不讲了,主要介绍如何配置Nginx实现Tomcat的负载均衡和利用memcached实现session共享。
1.1、配置Nginx+Tomcat集群实现负载均衡
这里主要修改nginx的配置文件nginx.conf
[root@localhost~]# vi /usr/local/nginx/conf/nginx.conf /编辑nginx配置文件,内容如下
user nobody;
worker_processes 4;
error_log logs/error.log;
events{
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
upstream www.huiyi99.com {
server 192.168.1.11:8080;
server 192.168.1.101:8080;
}
server {
listen 80;
server_name www.huiyi99.com;
charset utf-8;
location / {
root html;
index index.html index.htm;
proxy_pass http://www.huiyi99.com;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
location ~ ^/(WEB-INF)/ {
deny all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
注意:红色字体部分是需要修改的地方。
www.huiyi99.com的域名更换为自己需要的域名。
server 192.168.1.11:8080
server 192.168.1.10:8080
更换为后端Tomcat的ip的ip和端口,如果有多个按照该格式添加即可。
1.2、Tomcat配置
使用memcached-session-manager这个开源项目(http://code.google.com/p/memcached-session-manager,下面简称msm)配置Tomcat和memcached实现session共享。
首先将下面的包下载到Tomcat的lib目录下,这些包都是msm所依赖的包。
[root@localhost ~]# cd /usr/local/tomcat/lib/
[root@localhost lib]# wget http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar
[root@localhost lib]# wget http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar
[root@localhost lib]# wget http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar
[root@localhost lib]# wget http://spymemcached.googlecode.com/files/memcached-2.4.2.jar
[root@localhost lib]# wget http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar
下面修改Tomcat配置文件,让Tomcat结合memcached实现session共享
[root@localhostlib]# vi /usr/local/tomcat/conf/server.xml
在配置文件中加入如下内容
<ContextdocBase="/var/www/html"path="" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:localhost:11211"requestUriIgnorePatte
rn=".*\.(png|gif|jpg|css|js)$"sessionBackupAsync="false" sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.s
erializer.javolution.JavolutionTranscoderFactory"copyCollectionsForSerialization="false" />
</Context>
说明:
这里的memcachedNodes是填写memcached节点,多个节点时可以以空隔分开,如:
n1:localhost:11211 n2:localhost:11212 /localhost改为安装memcached的服务器的IP
sessionBackupTimeout的单位为分钟
/var/www/html改为Tomcat服务器web根目录的路径
修改后重启两个TOMCAT和nginx即可,这个时候已经解决SESSION的共享问题.
1.3、测试Nginx和Tomcat
测试Nginx是否实现负载均衡已经Tomcat能否共享session信息,分别在两个Tomcat服务器的/var/www/html目录下新建两个test.jsp页面
Tomcat1
[root@localhost lib]# vi /var/www/html/test.jsp /输入如下内容
SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 111111!");
%>
Tomcat2
[root@localhost lib]# vi /var/www/html/test.jsp /输入如下内容
SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 222222!");
%>
通过浏览器访问Nginx服务器,如下图将访问地址改成Nginx所在服务器。
反复刷新浏览器,如果SessionID一直不变,下面的SessionPort的内容在不断变化则说明配置成功。
本文出自 “linux” 博客,请务必保留此出处http://alvin1.blog.51cto.com/6223380/1252619
相关推荐
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分
Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...
Nginx+Tomcat+Memcached共享session集群配置
Tomcat+Memcached实现tomcat集群和session共享.docx
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享
Nginx+Tomcat+Memcached-Session-Manager整合做集群实现Session共享,实战操作,亲测可用。本文档仅供交流学习使用,欢迎大家批评指正。
兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。
Nginx+tomcat+memcached集群session共享(win7下)所用到一些zip文件和必须的jar包
Windows7 + Nginx + Memcached + Tomcat 集群 session 共享
Nginx+Tomcat+memcached实现集群部署、负载均衡session共享,内含说明文档,下载地址,依赖jar包,全套提供,亲测有效
2)Tomcat6和Tomcat7使用不同msm支持包:memcached-session-manager-tc6-1.6.5.jar和memcached-session-manager-tc7-1.6.5.jar,只可选一,否则启动报错。 3)msm源码中的lib包版本太低:spymemcached需要使用...
couchbase-client-1.2.2.jar ...memcached-session-manager-1.6.5.jar memcached-session-manager-tc6-1.6.5.jar minlog-1.2.jar msm-kryo-serializer-1.6.5.jar reflectasm-0.9.jar spymemcached-2.10.2.jar
包含了http的集群环境,https的集群环境,同时考虑到集群环境的session问题,使用了tomcat+memcached实现tomcat集群环境共享。整个环境解压既可以使用,证书如果需要修改,直接将证书放在nginx的config目录,然后...
NULL 博文链接:https://shizhijian870525.iteye.com/blog/1724613
nginx+memcached+tomcat 负载均衡+session共享实现所有代码 教程请看:https://blog.csdn.net/dayuang2009/article/details/80312249
NULL 博文链接:https://jackroomage.iteye.com/blog/1936597
首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 ...