需要安装包:apache2.22,tomcat7.0.23,openssl,tomcat-connectors(jk),部分操作需要高级权限,如创建用户,部分文件操作,启动apache(占用80端口)。
一、tomcat
tar zxf apache-tomcat-7.0.23.tar.gz
mv apache-tomcat-7.0.23 tomcat-pri
tar zxf apache-tomcat-7.0.23.tar.gz
mv apache-tomcat-7.0.23 tomcat-bak
使用两个tomcat,一主一备。
修改server.xml,主要修改端口,集群配置,默认访问的web服务。
1、<Serverport="8005" shutdown="SHUTDOWN">
2、<Connectorport="8081" protocol="HTTP/1.1"
3、<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"keystoreFile="d:/tomcat.keystore" keystorePass="123456"
clientAuth="false" sslProtocol="TLS" />
4、<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />
5、<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> <!—打开集群配置-->
6、<ContextdocBase="test" distributable="true" path=""/>
7、<Enginename="Catalina" defaultHost="localhost"jvmRoute="tomcat1"> <!—配置此tomcat在集群中的名字-->
修改工程web.xml,--可选,复制session会需要用到
加入<distributable/>
二、openssl---安装apache,带ssl模块的时候需要指定openssl路径,一般操作系统自带的都有openssl。
tar zxf openssl-0.9.8x.tar.gz
cd openssl-0.9.8x
./config --prefix=/home/admin/app/openssl
make;make install
三、apache
tar zxf httpd-2.2.22.tar.gz
cd httpd-2.2.22
./configure --prefix=/home/admin/app/apache
--with-ssl=/home/admin/app/openssl #指定openssl目录
--enable-so
--enable-ssl #使用ssl模块
make;make install
四、生成key
根证书
openssl genrsa -des3 -out ca.key 1024
openssl rsa -in ca.key -out ca.key
openssl req -new -x509 -key ca.key -out ca.crt
服务器证书
openssl genrsa -des3 -out server.key 1024
openssl rsa -in server.key -out server.key
openssl req -new -key server.key -out server.csr
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfileca.key
最后一步会报错,因为使用的是系统默认的openssl配置文件/etc/pki/tls/openssl.cnf,需要根据该文件做一些操作
修改openssl.cnf中dir参数,指向/etc/pki/CA目录
在CA目录下
touchindex.txt #提示找不到index.txt文件
echo 11 >serial #提示找不到serial
cp server.key apache/conf/
cp server.crt apache/conf/
打开httpd.conf,放开注释
Include conf/extra/httpd-ssl.conf
apache启动需要使用daemon用户,并需要在daemon用户组下
adduser daemon -g daemon
cd apche/bin
./apachectl start
测试,访问apache服务器,http,https
五、jk
tar zxf tomcat-connectors-1.2.37-src.tar.gz
进入到native目录
cd tomcat-connectors-1.2.37-src/native
需要指定apache的apxs路径
./configure --with-apxs=/home/admin/app/apache/bin/apxs
make
完成之后会在native下的apache-2.0目录下生成apache连接tomcat所需要的模块mod_jk.so
cp apache-2.0/mod_jk.so /home/admin/app/
六、集群配置
新建配置文件名任意
修改apache的httpd.conf,加入
Include conf/jk.conf
在apache/conf下创建文件jk.conf,内容如下:
LoadModule jk_module conf/mod_jk.so
JkWorkersFile conf/jk.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /* controller
在apache/conf下创建文件jk.properties,内容如下:
#server
worker.list = controller
#========tomcat1,名字需要与tomcat配置的jvmRoute 名字一致========
#tomcat1设置的ajp端口
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#负载比重
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
#是否连续访问一台服务器,直至它停止服务才切换
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
七、启动tomcat,测试。设置了iptables的需要结合iptables修改apache的监听端口即可,或结合apache监听端口修改iptables设置
设置tomcat启动参数,在bin/catalina.sh 加入
#设置中文
export LANG="zh_CN.GB18030"
JAVA_OPTS="-Xms256m -Xmx2048m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=512m"