Linux之LNMP架构中的Tomcat(sticky粘制、session共享、nginx+tomcat负载均衡)

一、Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

二、配置与部署tomcat

实验准备:apache-tomcat-7.0.37.tar.gz和jdk-7u79-linux-x64.tar.gz

#将软件包解压到指定目录
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local

#制作软连接,方便使用
cd /usr/local
ln -s apache-tomcat-7.0.37 tomcat

#配置系统环境变量
vim /etc/profile    #系统环境变量文件
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile    #运行该脚本

#查看jave版本
java -version

#脚本运行tomcat
cd /usr/local/tomcat/bin
./startup.sh    #开启tomcat
./shutdown.sh   #关闭tomcat
cat ../logs/catalina.out    #查看日志信息

#测试
http://172.25.65.1:8080    #可以看到tomcat的欢迎页

#nginx配置文件的修改,不用添加端口也可以直接访问
cd /usr/local/openresty/nginx/conf
vim nginx.conf
location ~ \.jsp$ {
    proxy_pass  http://127.0.0.1:8080;    #将请求转到8080端口上
}

#测试
http://172.25.65.1/index.jsp        #访问到tomcat的欢迎页,但是没有图片

三、tomcat+nginx实现负载均衡

## server1中
#将之前写好的test.jsp测试脚本复制到tomcat的发布目录
mv test.jsp /usr/local/tomcat/webapps/ROOT/

#制作软连接
ln -s apache-tomcat-7.0.37 tomcat

#server1的nginx中配置负载均衡
cd /usr/local/openresty/nginx/conf
vim nginx.conf
将之前的php和memcache设定全部注释
http {
    upstream tomcat {
        server 172.25.65.1:8080;
        server 172.25.65.2:8080;
    }
    include mime.types;
    default_type application/octet-stream;
}
location ~ \.jsp$ {
    proxy_pass http://tomcat;
}
/usr/local/openresty/nginx/sbin/nginx -t    #检验
/usr/local/openresty/nginx/sbin/nginx -s reload     #重启   

## server2中
#设置java环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

#启动tomcat
cd /usr/local/tomcat/bin
./startup.sh
netstat -tnlp    #查看8080端口是否打开
scp test.jsp server2:/usr/local/tomcat/webapps/ROOT

#重启tomcat,使设置生效
cd /usr/local/tomcat/bin
./shutdown.sh
./startup.sh

#测试负载均衡
http://172.25.65.1/test.jsp    #提交用户信息后,会切换id,用户的信息在该主机中并没有保存

四、tomcat中sticky粘滞配置

#实验准备
nginx-1.10.1.tar.gz
nginx-sticky-module-ng.tar.gz

#解压软件包
tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-sticky-module_ng.tar.gz

#编译和安装
cd nginx-1.10.1/
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx --add-module=/root/nginx-sticky-module-ng
/usr/local/lnmp/nginx/sbin/nginx -V    #查看版本是否切换到nginx-1.10.1
make && make install

#查看模块是否安装
cd nginx-1.10.1/objs
vim ngx_modules.c

#将之前openresty中的nginx.conf配置文件拷到/usr/local/lnmp/nginx/conf中
cp /usr/local/openresty/nginx/conf/nginx.conf /usr/local/lnmp/nginx/conf
vim /usr/local/lnmp/nginx/conf/nginx.conf
http {
    upstream tomcat {
        sticky;
        server 172.25.65.1:8080;
        server 172.25.65.2:8080;
    }
}

#重新加载nginx
/usr/local/lnmp/nginx/sbin/nginx -s reload

#测试
http://172.25.65.1/test.jsp    #填写用户信息并提交,id号不变

五、session共享(交叉存储)

#两台虚拟机同时设置server1和server2
yum install memcached -y
/etc/init.d/memcached status

#下载jar包
asm-3.2.jar
kryo-1.04.jar
kryo-serializers-0.10.jar
memcached-session-manager-1.6.3.jar
memcached-session-manager-tc7-1.6.3.jar
minlog-1.2.jar
msm-kryo-serializer-1.6.3.jar
reflectasm-1.01.jar
spymemcached-2.7.3.jar

#修改context.xml文件,加入session共享配置
vim /usr/local/tomcat/conf/context.xml
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.65.1:11211,n2:172.25.65.2:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

server2中将failoverNodes="n2"

#重启tomcat
/usr/local/tomcat/shutdown.sh
/usr/local/tomcat/bin/startup.sh

#测试
http://172.25.65.1/test.jsp    #提交用户信息,server1和server2都会备份该数据,切换id后,用户信息也可以看到

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值