在CentOS6.5环境下,基于Nginx实现tomcat单机多实例集群。
1、安装nginx
[root@tomcat-zhu ~]#
cd /home/
[root@tomcat-zhu home]# get http://mirrors.sohu.com/nginx/nginx-1.9.8.tar.gz
[root@tomcat-zhu
home]#tar zxvf nginx-1.9.8.tar.gz
[root@tomcat-zhu
home]# mv nginx-1.9.8 nginx
[root@tomcat-zhu home]# yum install -y gcc-c++ pcre-devel zlib-devel
[root@tomcat-zhu
home]# cd nginx
[root@tomcat-zhu nginx]# ./configure
[root@tomcat-zhu nginx]# make
[root@tomcat-zhu nginx]# make instal
编写nginx启动脚本,此服务不支持加入系统服务
[root@tomcat nginx-1.4.4]# vim /etc/init.d/nginx
[root@tomcat-zhu conf]# /usr/local/nginx/sbin/nginx -s stop (关闭nginx服务)
[root@tomcat-zhu conf]# /usr/local/nginx/sbin/nginx (启动nginx服务)
[root@tomcat-zhu conf]# /usr/local/nginx/sbin/nginx -s reload (重启nginx服务)
[root@tomcat nginx-1.4.4]# chmod 755 /etc/init.d/nginx
[root@tomcat-zhu nginx]# chkconfig --add nginx
nginx 服务不支持 chkconfig
[root@tomcat-zhu nginx]# /etc/init.d/nginx start
[root@tomcat-zhu nginx]# curl -I 10.130.130.180
http://10.130.130.180
2、安装jdk
[root@tomcat-zhu home]# yum install -y java-1.7*
[root@tomcat-zhu home]# java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (rhel-2.6.4.0.el6_7-x86_64 u95-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
3、安装tomcat
[root@tomcat-zhu home]#wget
http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.68/bin/apache-tomcat-7.0.68.tar.gz
[root@tomcat-zhu home]# tar -zxvf apache-tomcat-7.0.68.tar.gz
[root@tomcat-zhu home]# mv apache-tomcat-7.0.68 tomcat
[root@tomcat-zhu home]# cd tomcat/bin
[root@tomcat-zhu bin]# ps aux |grep tomcat
[root@tomcat-zhu bin]# curl -I 127.0.0.1:8080 http://10.130.130.180:8080/
4、配置单机多实例
[root@tomcat-zhu home]# cp -r tomcat tomcat1
[root@tomcat-zhu home]# cd tomcat1/conf
[root@tomcat-zhu conf]# vi /home/tomcat1/conf/server.xml # 编辑三个端口号
<Connector port="8081" protocol="HTTP/1.1" 8080—
8081
<Connector port="8008" protocol="AJP/1.3" redirectPort="8443" /> 8009—
8008
<Server port="8004" shutdown="SHUTDOWN"> 8005—
8004
[root@tomcat-zhu bin]# ./startup.sh (启动tomcat服务)
[root@tomcat-zhu bin]# ./shutdown.sh (关闭tomcat服务)
[root@tomcat-zhu bin]# netstat -lnp |grep 80 (查看tomcat端口)
http://10.130.130.180:8081/ [root@tomcat-zhu bin]# curl -I 10.130.130.180:8081
(测试tomcat服务)
5、配置nginx负载均衡
编辑和创建文件
[root@tomcat-zhu ~]# ls /usr/local/nginx/conf/
proxy.conf
nginx.conf
gzip.conf
编辑完成重启nginx服务
[root@tomcat-zhu ~]# /etc/init.d/nginx restart
停止 Nginx: [确定]
正在启动 Nginx: [确定]
6、测试
测试之前开启nginx服务,但是不开放tomcat服务,测试报错,查看报错文件:/usr/local/nginx/logs/error.log
[root@tomcat-zhu ~]# curl -I 10.130.130.180
HTTP/1.1 502 Bad Gateway
开启某个tomcat1服务,再次测试,恢复正常。
a、同时开启tomcat、tomcat1服务。
[root@tomcat-zhu /]# ./home/tomcat/bin/startup.sh
[root@tomcat-zhu /]# ./home/tomcat1/bin/startup.sh
[root@tomcat-zhu /]# curl -I localhost
HTTP/1.1 200 OK
[root@tomcat-zhu /]# curl -I localhost:8080
HTTP/1.1 200 OK
[root@tomcat-zhu /]# curl -I localhost:8081
HTTP/1.1 200 OK
b、关闭tomcat1、开启tomcat服务。
通过测试[root@tomcat-zhu /]# curl -I localhost 正常
[root@tomcat-zhu /]# curl -I localhost:8081 不可达
[root@tomcat-zhu /]# curl -I localhost:8080 正常
c、关闭tomcat、开启tomcat1服务。
通过测试[root@tomcat-zhu /]# curl -I localhost 正常
[root@tomcat-zhu /]# curl -I localhost:8081 正常
[root@tomcat-zhu /]# curl -I localhost:8080 不可达
Windows客户端编辑hosts文件,可以通过浏览器进行测试,但是由于前端web界面属于开发人员的工作,通过修改代码来实现前端的变化是行不通的。只能通过带端口号的网址打开,在后端停止、开启切换tomcat应用来查看前端web变化。