1、准备安装包
- nginx-1.4.7.tar.gz
- nginx_upstream_jvm_route
nginx扩展包,使得nginx能根据客户端的cookie实现粘性转发,保证同一客户端的请求转发到相同的tomcat,解决session问题。由于安装此模板对nginx版本有一定要求,所以请务必按照文档所写的版本进行安装。基于各个服务器的差异,下面的安装步骤可能会有所差异,但是原理是一样的,请安装人员在安装过程中,按照实际提示进行安装。
- 把这两个包都放到安装目录中,解压nginx-1.4.7.tar.gz
#tar zxvf nginx-1.4.7.tar.gz
2、编译安装nginx 如果之前有用yum在服务器上安装了nginx,请先卸载
# yum remove nginx
进入nginx安装包解压之后的目录
# cd /dhsq/nginx-1.4.7
安装nginx_upstream_jvm_route模块补丁
# patch -p0 < /dhsq/nginx_upstream_jvm_route/jvm_route.patch
显示如下信息表示补丁安装成功。
然后我们对源码进行编译
./configure --with-http_stub_status_module --with-http_ssl_module --add-module=/dhsq/nginx_upstream_jvm_route/
提示我们还没有安装PCRE库,使用yum安装
# yum install pcre
# pcre-devel
安装之后再次编译 编译还是不通过,提示缺少OpenSSL库
使用yum安装
# yum install openssl
# yum install openssl-devel
安装之后再次编译,编译成功
注意红色地方的路径为nginx安装的相关路径,当然你也可以在编译的时候指定安装的路径,这里我们使用默认的安装路径。 然后进行安装
# make
# make install
我们来到nginx的目录
# cd /usr/local/nginx/
可以看到各文件已经有了。
启动nginx。由于源码安装没有把nginx安装成服务,我们不能使用service nginx start这些命令。
# /usr/local/nginx/sbin/nginx
启动之后我们可以在浏览器输入服务器的ip地址 看到如下界面,说明nginx安装成功。
3、基于nginx_upstream_jvm_route模块粘性session负载均衡配置
worker_processes 4;
worker_rlimit_nofile 4096;
worker_connections 4096;
upstream www.mytest.com{
#ip_hash;
server 127.0.0.1:8080 srun_id=tomcat1;
server 127.0.0.1:9090 srun_id=tomcat2;
jvm_route $cookie_JSESSIONID|sessionid reverse;
}
location / {
proxy_pass http://www.mytest.com;
root html;
index index.html index.htm;
}
还需要修改tomcat的server.xml配置文件
# vi /dhsq/apache-tomcat-app-t2/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
在后面增加jvmRoute标签,内容即为在nginx中的名字。注意在集群的tomcat中名字唯一。
最后重启tomcat和nginx
# /www/apache-tomcat-app-t1/bin/shutdown.sh
# /www/apache-tomcat-app-t1/bin/startup.sh
Nginx的重启方法
# ps -ef|grep nginx
查询nginx的进程,然后使用kill杀掉进程,然后再重新启动即可。
# /usr/local/nginx/sbin/nginx
这时候再在浏览器中输入ip地址可以看到请求被转发到tomcat中了