这几天 看了点关于Nginx 的文章 准备上手搭建起来, 网上的帖子很多 但是感觉似乎大部分都是拷贝过来,根本都跑步起来。
经过半天的折腾 总算是摸索出来
使用nginx 做负载均衡 memcached处理session共享
环境 windows 7 X64
java : jdk7
nginx : 1.5.0 http://nginx.org/;
tomcat :6.37.0 X 3
memecached : http://memcached.org/;
一
1 JDK的安装不多说
二 安装tomcat
如何在一台机器上启动多个TOMCAT :
修改 conf/server.xml 中的三个配置
![dPu8hlAYHAAA&bo=WgJRAAAAAAABAC4!&su=0611](https://i-blog.csdnimg.cn/blog_migrate/d67494a1c6d0253f437ffdd821cd9591.jpeg)
这里改成三个不同的端口 如 8005,8006,8007
![dPrQQlLuFgAA&bo=pQE9AAAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/03ab445facc6c5e977beaf2af6204ffa.jpeg)
这里也是一样 不同的三个 如 8010,8020,8030
![dEldSlLxFgAA&bo=iwInAAAAAAABAIk!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/9150ac7f3e3cf76ca8e5b848a2815134.jpeg)
这里也是一样 不同的三个 如 8866,8877,8888
保存之后 分别启动三个TOMCAT 控制台无错误
就开始进行下一步
三 : 安装memcached
http://memcached.org/ 到这里下载
解压开来![dPLMRVL3FgAA&bo=dgHuAAAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/82011b5b2fb4e10d0bc6b4f1506d8d5c.jpeg)
打开cmd 进入memcached解压到的路径D:\javaNTM\memcached 输入:
经过半天的折腾 总算是摸索出来
使用nginx 做负载均衡 memcached处理session共享
环境 windows 7 X64
java : jdk7
nginx : 1.5.0 http://nginx.org/;
tomcat :6.37.0 X 3
memecached : http://memcached.org/;
一
1 JDK的安装不多说
二 安装tomcat
如何在一台机器上启动多个TOMCAT :
修改 conf/server.xml 中的三个配置
![dPu8hlAYHAAA&bo=WgJRAAAAAAABAC4!&su=0611](https://i-blog.csdnimg.cn/blog_migrate/d67494a1c6d0253f437ffdd821cd9591.jpeg)
这里改成三个不同的端口 如 8005,8006,8007
![dPrQQlLuFgAA&bo=pQE9AAAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/03ab445facc6c5e977beaf2af6204ffa.jpeg)
这里也是一样 不同的三个 如 8010,8020,8030
![dEldSlLxFgAA&bo=iwInAAAAAAABAIk!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/9150ac7f3e3cf76ca8e5b848a2815134.jpeg)
这里也是一样 不同的三个 如 8866,8877,8888
保存之后 分别启动三个TOMCAT 控制台无错误
就开始进行下一步
三 : 安装memcached
http://memcached.org/ 到这里下载
解压开来
![dPLMRVL3FgAA&bo=dgHuAAAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/82011b5b2fb4e10d0bc6b4f1506d8d5c.jpeg)
打开cmd 进入memcached解压到的路径D:\javaNTM\memcached 输入:
memcached.exe –d install 回车安装windows服务
输入:memcached.exe –p 11211 –d start 回车启动memcached服务 -p 表示端口
四:安装Nginx
下载解压
打开CMD 进入 D:\javaNTM\nginx-1.5.10
输入 : start nginx
输入nginx -t
、
这样就表示启动成功
如果启动失败 请修改conf/nginx.conf 中的
![dLyCEVE2HAAA&bo=rAFvAAAAAAABAOU!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/73f88e6db0f0598945a7c7fb8710d483.jpeg)
修改默认的值为utf-8 去掉注释
五:nginx 反向代理
修改 conf/nginx.conf 文件
在server{
localhost / {
.....
}
}添加如下代码
![dCSa8UwxHAAA&bo=bwL1AQAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/b5dbb80e7f96d8e43b6d223e64d83dd1.jpeg)
proxy_pass http://localhost;
注入 端口号要和自己的tomcat一致
![dKsJE1EtHAAA&bo=UwGNAAAAAAABAPg!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/337ae2794afd8542ec6eeb36022c790c.jpeg)
四:安装Nginx
下载解压
![dPgP7UwvHAAA&bo=zwLbAAAAAAABADE!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/36ad6795c9d46d90dcc32bc51102e43e.jpeg)
打开CMD 进入 D:\javaNTM\nginx-1.5.10
输入 : start nginx
输入nginx -t
![dPsY7UwzHAAA&bo=1gJlAAAAAAABAJY!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/baac3065b54e140d665af6309eae5ea8.jpeg)
这样就表示启动成功
如果启动失败 请修改conf/nginx.conf 中的
![dLyCEVE2HAAA&bo=rAFvAAAAAAABAOU!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/73f88e6db0f0598945a7c7fb8710d483.jpeg)
修改默认的值为utf-8 去掉注释
五:nginx 反向代理
修改 conf/nginx.conf 文件
在server{
localhost / {
.....
}
}添加如下代码
![dCSa8UwxHAAA&bo=bwL1AQAAAAABAL4!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/b5dbb80e7f96d8e43b6d223e64d83dd1.jpeg)
proxy_pass http://localhost;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
在server 之前添加如下代码
注入 端口号要和自己的tomcat一致
![dKsJE1EtHAAA&bo=UwGNAAAAAAABAPg!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/337ae2794afd8542ec6eeb36022c790c.jpeg)
upstream localhost {
server localhost:8080;
server localhost:8010;
server localhost:8020;
}
六:session的共享
下载如下jar包 (就是这些个jar折腾的够呛)
然后修改 conf/context.xml
添加如下代码:
下载如下jar包 (就是这些个jar折腾的够呛)
JAR 包我已经找好了 在 百度网盘 http://pan.baidu.com/s/1i3DS89B
全部拷贝进TOMCAT/lib中 三个都要哦然后修改 conf/context.xml
添加如下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
sticky="false"
memcachedNodes="n1:localhost:11211"
failoverNodes=""
lockingMode="all"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
因为支持memcached分布式 如果有多台memcached 在 memcachedNodes="nx:IP:port" 即可
注意:这里的端口号要和启动的设置的端口一致
打开cmd 进入nginx 的解压目录 输入 nginx -s -stop ()
输入 nginx start 重新启动nginx
依次启动三台tomcat
在TOMCAT \webapps\ROOT 下新增一张页面 demo.jsp
![dIAZhVAyHAAA&bo=MwKBAAAAAAABAJc!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/ced5e46dbd33c6df490d8811667fe470.jpeg)
![dJQjglA2HAAA&bo=LwKVAAAAAAABAJ8!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/ad34df37a8c62e2c2e38139ab7d1ffef.jpeg)
![dAwq8EwvHAAA&bo=JQJGAAAAAAABAEY!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/17cf056aef9afedfeffa4f47ecfaf821.jpeg)
控制台
![dE5js1G6HAAA&bo=2QFGAgAAAAABALs!&su=0826](https://i-blog.csdnimg.cn/blog_migrate/534a341f33fb1f3b4c393c62c2f627d2.jpeg)
nginx + tomcat + memcached 环境就搭建好了
![dLOxrlHBHAAA&bo=YQPkAQAAAAABAKA!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/23e6e4db7cec7a50420936b742ea00f3.jpeg)
因为支持memcached分布式 如果有多台memcached 在 memcachedNodes="nx:IP:port" 即可
注意:这里的端口号要和启动的设置的端口一致
打开cmd 进入nginx 的解压目录 输入 nginx -s -stop ()
输入 nginx start 重新启动nginx
依次启动三台tomcat
在TOMCAT \webapps\ROOT 下新增一张页面 demo.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ 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>");
// 如果有新的请求,则添加session属性
String name = request.getParameter("name");
if (name != null && name.length() > 0) {
String value = request.getParameter("value");
session.setAttribute(name, value);
}
out.print("<b>Session List:</b>");
Enumeration<String> names = session.getAttributeNames();
while (names.hasMoreElements()) {
String sname = names.nextElement();
String value = session.getAttribute(sname).toString();
out.println( sname + " = " + value+"<br>");
System.out.println( sname + " = " + value);
}
%>
jvm1
</body>
![dIAZhVAyHAAA&bo=MwKBAAAAAAABAJc!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/ced5e46dbd33c6df490d8811667fe470.jpeg)
![dJQjglA2HAAA&bo=LwKVAAAAAAABAJ8!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/ad34df37a8c62e2c2e38139ab7d1ffef.jpeg)
![dAwq8EwvHAAA&bo=JQJGAAAAAAABAEY!&t=5&su=](https://i-blog.csdnimg.cn/blog_migrate/17cf056aef9afedfeffa4f47ecfaf821.jpeg)
控制台
![dE5js1G6HAAA&bo=2QFGAgAAAAABALs!&su=0826](https://i-blog.csdnimg.cn/blog_migrate/534a341f33fb1f3b4c393c62c2f627d2.jpeg)
nginx + tomcat + memcached 环境就搭建好了
转载于:https://blog.51cto.com/sczyliuyi/1386425