运维笔记35-web应用实战 (nginx+memcached+tomcat)

系统发行版:Red Hat Enterprise Linux Server release 6.5 (Santiago)
nginx版本:nginx-1.10.3.tar
memcached版本:memcached-1.4.4-3.el6
tomcat:apache-tomcat-7.0.37

系统框图:
这里写图片描述

ha1上使用ha2的memcached,只有当ha2不可用的时候才使用ha1上的mecached。

一.软件安装与配置

1.java安装

 [root@ha2 work-2017.3.25]# sh jdk-6u32-linux-x64.bin 
 [root@ha2 work-2017.3.25]# cp -r jdk1.6.0_32/ /usr/local/java

现在修改一下linux的环境变量

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

2.tomcat安装
将tomcat解压后直接将其复制到/usr/local下

[root@ha2 work-2017.3.25]# cp -r apache-tomcat-7.0.37 /usr/local/tomcat

memcached的功能是为了缓存session。我们为了添加对tomcat对这些功能的支持我们要给tomcat添加一些库。

添加的库如下:

[root@ha2 jar]# ls
asm-3.2.jar                              minlog-1.2.jar
kryo-1.04.jar                            msm-kryo-serializer-1.6.3.jar
kryo-serializers-0.10.jar                reflectasm-1.01.jar
memcached-session-manager-1.6.3.jar      spymemcached-2.7.3.jar
memcached-session-manager-tc7-1.6.3.jar

编辑tomcat的xml配置文件/usr/local/tomcat/conf/context.xml

<Context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.0.11:11211,n2:192.168.0.12:11211"    
failoverNodes="n1" #在 node2 上此项设置为“n2requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>

现在启动tomcat

[root@ha1 bin]# /usr/local/tomcat/bin/startup.sh

关闭tomcat

[root@ha1 bin]# /usr/local/tomcat/bin/shutdown.sh 

3.memcache的安装
这里直接使用yum安装就可以了

[root@ha2 jar]# yum install memcached -y

开启memcached

[root@ha2 jar]# /etc/init.d/memcached start

4.nginx的安装

安装依赖包

[root@ha2 ~]# yum install -y pcre-devel openssl-devel

解压源码包,安装nginx-sticky-module第三方模块,这个模块的功能是让nginx支持sticky模式,一个用户的请求都被发往一台tomcat上。
将这个模块解压到nginx源码包,方便nginx的源码编译过程。
configure过程

[root@ha2 nginx-1.10.3]# ./configure --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --add-module=nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d/

如果没有问题,直接进入make

[root@ha2 nginx-1.10.3]# make && make install

配置nginx

user nginx nginx;
worker_processes 4;
events {
use epoll;
worker_connections 1024;
}
http {
upstream www.mo.com {
sticky;
server 192.168.5.11:8080;
server 192.168.5.12:8080;
}
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name www.mo.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.jsp$ { #所有 jsp 页面交给 tomcat 处理,动静分离
proxy_pass http://desktop91.example.com;
}
}
}


将jsp测试页放到如下目录

[root@ha2 conf]# cd /usr/local/tomcat/webapps/ROOT/
[root@ha2 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT

test.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session list</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
%<form action="test.jsp" method="POST">
%name:<input type=text size=20 name="dataName">
%<br>
%key:<input type=text size=20 name="dataValue">
%<br>
%<input type=submit>
%</form>
%</body>
%</html>

测试一下访问
这里写图片描述

看到如上界面就代表我们基本成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值