搭建nginx + tomcat + mysql + memcached 环境.
拓普图如下
java程序 需要 运行在tomcat上, tomcat 就是一个java程序. 这个java程序,是需要运行在java的虚拟机上.
所以,我们要在安装tomcat的节点上,安装java虚拟机,即安装jdk环境.
在172.16.26.5 [6 ] 两个集群节点上都装上memcached服务. 以及tomcat服务.
由172.16.26.1使用nginx作为调度节点.
172.16.26.1 nginx 的配置
upstream www.tomcat1.com { server 172.16.26.6:8080 weight=1; =>后端节点1 server 172.16.26.5:8080 weight=1; ==>后端节点2 least_conn; } server { listen 80; server_name www.tomcat1.com; =>虚拟主机名 charset utf-8; location / { root html; index index.jsp index.html index.htm; proxy_pass http://www.tomcat1.com; =>所有访问/ 路径的,都代理到 http://www.tomcat1.com上来 proxy_set_header X-Real-IP $remote_addr; client_max_body_size 100m; } }
节点1 172.16.26.5 [6] 的配置
需要准备的软件
jdk-7u9-linux-x64.rpm
apache-tomcat-7.0.55.tar.gz
首先安装jdk
[root@php5_6 ~]# rpm -ivh jdk-7u9-linux-x64.rpm =>安装jdk环境
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/rt.pack
jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/jsse.pack
charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/charsets.pack
tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/lib/tools.pack
localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/ext/localedata.pack
[root@php5_6 bin]# pwd
/usr/java/jdk1.7.0_09/bin =>这是安装好的java 虚拟机运行程序目录
[root@php5_6 bin]# ls =>目录下有着java虚拟机的各种方法
appletviewer java javaws jmap jvisualvm rmid wsgen
apt javac jcmd jps keytool rmiregistry wsimport
ControlPanel javadoc jconsole jrunscript native2ascii schemagen xjc
extcheck javafxpackager jcontrol jsadebugd orbd serialver
idlj javah jdb jstack pack200 servertool
jar javap jhat jstat policytool tnameserv
jarsigner java-rmi.cgi jinfo jstatd rmic unpack200
//想要方便的使用 java虚拟机的各种方法,为其添加一个使用的环境变量
# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/java/latest => latest是/usr/java/jdk1.7.0_09的一个软链接
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export PATH
解压tomcat /usr/local/apache-tomcat-7.0.42/bin/ 支持j2ee ,web servlets ,JSP
# tomcat 只是运行在java 虚拟机里面的一个程序而已, JVM ==>运行在虚拟机里的程序,切记
[root@php5_6 ~]# tar -xf apache-tomcat-7.0.55.tar.gz -C /usr/local/
为了方便的使用 tomcat 里的程序,所以我们也给它导出一个环境变量
# vim /etc/profile.d/tomcat.sh
CATALINA_HOME=/usr/local/tomcat
PATH=$CATALINA_HOME/bin:$PATH
export CATALINA_HOME
export PATH
[root@php5_6 conf]#catalina.sh start =>确保8080端口没被占用的情况下,就可以启动tomcat了
[root@php5_6 conf]# pwd
/usr/local/tomcat/conf
[root@php5_6 conf]# vim server.xml
想要使用 memcached-session-manager 配置Tomcat和memcached实现session共享。
需要使用下面的包,把它们下载到Tomcat的lib目录下,这些包都是msm所依赖的包。
http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar
http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar
http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar
http://spymemcached.googlecode.com/files/memcached-2.4.2.jar
http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar
将包下载好之后,都放置到 /usr/local/tomcat/lib 目录中
<Context path="/test" docBase="test"> =>创建一个测试目录,验证memcached是否能正常工作. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.16.26.5:11211,n2:172.16.26.6:11211" =>同时配置两个memcached节点 failoverNodes="n1" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" /> </Context> <Context path="/jcenter" docBase="jcenter"> =>这个目录用来配置一个叫javacenter的项目 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.16.26.5:11211,n2:172.16.26.6:11211" failoverNodes="n1" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" /> </Context>
172.16.26.5 [6] 节点都安装上memcached
# yum install memcached -y yum安装memcached服务
# service memcached start =>启动memcached服务
在两个节点上,建立如下目录
/usr/local/tomcat/webapps/test # 注意 该目录的jsp程序运行,需要WEB-INF 目录, WEB-INF目录下需要有 lib,classes两个子目录
在两节点的 test目录,都创建 index.jsp文件
内容172.16.26.5 为
<%@ page language="java" %> <html> <head><title>TomcatA</title></head> <body> <h1><font color="red">TomcatA.magedu.com</font></h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("magedu.com","magedu.com"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
内容172.16.26.6 为
<%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="blue">TomcatB.magedu.com</font></h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("magedu.com","magedu.com"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
java和memcached的配置完成,启动tomcat , memcached
# service tomcat restart =>重启 tomcat
# service memcached restart =>重启memcached
在客户端修改hosts文件
172.16.26.1 www.tomcat1.com
由访问的结果来看,响应的内容不一样,说明是不同的节点响应的, 但是sessionid都一样
说明 memcached共享已经成功了.那么我们再接再厉,完成javacenter的布署.
安装mariadb (过程省略, 有需要者请看我的博客里,关于mariadb安装的篇幅);
MariaDB [(none)]> create database jcenter; =>创建数据库 jcenter,作为javacenter项目的主库
MariaDB [(none)]> grant all on jcenter.* to jcenter@‘172.16.26.%‘ identified by ‘abcabc‘; =>授权用户连接
下载 JavaCenter_Home_2.0_GBK.tar.bz2 程序压缩包
解压到节点 172.16.26.5 的 /usr/local/tomcat/webapps/jcenter 目录下
#--------------- JavaCenter Home设置 ---------------
# 数据库服务器地址(一般为本地localhost或127.0.0.1)
dbHost=172.16.26.5 =>由于是共享一个库,所以写成ip地址
# 数据库服务器端口号(一般为3306)
dbPort=3306
# 数据库用户名
dbUser=jcenter
# 数据库密码
dbPw=abcabc
# 数据库名
dbName=jcenter
# 表名前缀(不能与论坛的表名前缀相同)
tablePre=jchome_
配置完成,使用ip地址访问jcenter项目,进行程序安装
后续只要正确的填写数据库信息, 填写安装项目的管理员信息,就可以完成了.
这会,安装就完成了,把安装好的 /usr/local/tomcat/webapps/jcenter目录,整个打包,并发送到 172.16.26.6主机上,并解压到同一位置
这会,用虚拟主机也都可以正常访问了.
本文出自 “909是个目标” 博客,请务必保留此出处http://robert1joy.blog.51cto.com/4489523/1559188