java memcached 负载均衡_Nginx+Tomcat+Memcached负载均衡配置完整流程(多方总结,亲测可用)...

Nginx+Tomcat+Memcached负载均衡配置完整流程:

前言:

Nginx实现Tomcat的负载均衡和利用memcached实现session共享.

首先配置tomcat,JDK

将jdk,tomcat放入站点/opt目录中

安装JDK

cd /opt

chmod 755 jdk-6u45-linux-x64-rpm.bin

./jdk-6u45-linux-x64-rpm.bin

java -version      //检验版本

安装Tomcat

tar -zxf apache-tomcat-6.0.45.tar.gz

cd apache-tomcat-6.0.45/bin

chmod 755 startup.sh

./startup.sh

安装jar包:

直接粘贴至tomcat文件lib目录下

jar包见附件

下面是安装jdk1.7,1.8的方法,我们这边用的是jdk1.8所以还可以提供jdk1.8版本的,jdk1.7的自己去官网下即可

Jdk 1.7,Jdk1.8

rpm -ivh jdk-7u80-linux-x64.rpm

rpm -ivh jdk-8u77-linux-x64.rpm

tomcat日志状态

tail -f /opt/apache-tomcat-6.0.45/logs/catalina.out

注:

执行到这一步:那么我们首先打开tomcat

确认页面可以出现TOM猫儿,证明启动成功,

着重点:此刻拍摄一个快照,命名为Tomcat

So:

2.安装Nginx

1.

yum install epel-release

2.

yum install nginx

3.关闭SELinux

vi /etc/selinux/config

#改为

SELINUX=disabled

4.

service nginx start      //启动

service nginx restart    //重启

service nginx status     //查看状态

注:

执行到这一步:那么我们首先打开tomcat

确认页面可以出现写有nginx,证明启动成功,

着重点:此刻拍摄一个快照,命名为Nginx

So:

3.Memcached安装:yum install -y telnet

yum install -y memcached

service memcached start      //启动

service memcached restart    //重启

service memcached status     //查看状态

注:

执行到这一步:那么我们首先打开tomcat

确认页面依旧是Tomcat而不是Nginx,证明启动成功,

着重点:此刻拍摄一个快照,命名为Memcached

Final:

4.修改nginx.config文件:

vi /etc/nginx/nginx.conf

user  nginx;

worker_processes  1;

error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;

events {

worker_connections  2048;

}

http {

include       /etc/nginx/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  /var/log/nginx/access.log  main;

sendfile        on;

#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

upstream puppetmaster {

server 192.168.230.128:8080;

server 192.168.230.133:8080;

}

server {

listen 80;

location / {

##设置跳转到puppetmaster负载均衡

proxy_pass http://puppetmaster;

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;

proxy_set_header X-Client-Verify $ssl_client_verify;

proxy_set_header X-SSL-Subject $ssl_client_s_dn;

proxy_set_header X-SSL-Issuer $ssl_client_i_dn;

proxy_buffer_size 10m;

proxy_buffers 1024 10m;

proxy_busy_buffers_size 10m;

proxy_temp_file_write_size 10m;

proxy_read_timeout 120;

}

location /status {

stub_status on;

access_log   off;

allow all;

}

}

}

需要注意这里upstream puppetmaster {

server 192.168.230.128:8080;

#server 192.168.230.133:8080;

}

这里的两个地址分别指的是你的两台不同的tomcat地址,#表示注销,也就是说这里只需要加入当前tomcat地址,而在另一台tomcat上加入另一台tomcat的当前地址

这里只需要加入当前tomcat的IP地址即可

5.

修改apache-tomcat-6.0.45/conf/context.xml文件:

cd /opt

vi apache-tomcat-6.0.45/conf/context.xml

在配置文件中的标签里面加入如下内容:

memcachedNodes="n1:192.168.230.128:11211"

sticky="false"

sessionBackupAsync="false"

sessionBackupTimeout="1000"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

customConverter="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

需要注意这里memcachedNodes="n1:192.168.230.128:11211"

这是第一台tomcat的IP地址记为n1,两台tomcat在这里配置均为第一台n1地址

注意了07e993955449a36ecd77ffa28ba5db02.png给你个表情:这里需要通过完全克隆第二台tomcat或者重新再安装一次上述步骤,然后和上述配置一样,需要改的地方我在上面已经注释了,这样你就有相同配置但Ip地址不同两台tomcat,除了配置文件nginx.config里面IP地址需要更改。

最后写一个index.jsp进行测试

index.jsp 请见附见,我将写好的index.jsp打成了war包 ,起了个叫bbb.war 的war包,将这个war包放入tomcat的webapps下,即可直接访问 http://localhost/bbb.war  即可访问,结果如下图

2822505f18ee5807802576f0d1c4385f.png

So:出现上面结果需要刷新一下页面,如果还是这个Session未命中,UUID是变化的,说明你配置的有问 题,请通过快照一步一步排除问题所在,如果出现下面这个,页面没有Session未命中标识,同时刷新页面UUID不变化,如下图,则证明Nginx+Tomcat+Memcached负载均衡成功实现

81ccdfb736963fcc4feeae888e100c4c.png

好吧 找不到附件我就在加一个index.jsp,记得给楼楼一个赞呦~c892a66900c4250c429cbcc5c082d55d.png

html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Session 共享测试

本机IP:

String uuid = (String)request.getSession().getAttribute("time");

%>

if(uuid == null) {

%>

Session未命中

uuid = UUID.randomUUID().toString();

request.getSession().setAttribute("time", uuid);

System.out.println(uuid);

}

%>

UUID:

拿走不谢,留下你的赞呦518083753f1f241594998ca4641a11bf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值