NGINX源码安装+nginx_upstream_jvm_route

一、准备安装包html

  • nginx-1.4.7.tar.gz
  • nginx_upstream_jvm_route

nginx扩展包,使得nginx能根据客户端的cookie实现粘性转发,保证同一客户端的请求转发到相同的tomcat,解决session问题。因为安装此模板对nginx版本有必定要求,因此请务必按照文档所写的版本进行安装。基于各个服务器的差别,下面的安装步骤可能会有所差别,可是原理是同样的,请安装人员在安装过程当中,按照实际提示进行安装。nginx

  • 把这两个包都放到安装目录中,解压nginx-1.4.7.tar.gz
#tar zxvf nginx-1.4.7.tar.gz

输入图片说明

二、编译安装nginx 若是以前有用yum在服务器上安装了nginx,请先卸载apache

# yum remove nginx

进入nginx安装包解压以后的目录浏览器

# cd /dhsq/nginx-1.4.7

安装nginx_upstream_jvm_route模块补丁tomcat

# patch -p0 < /dhsq/nginx_upstream_jvm_route/jvm_route.patch

显示以下信息表示补丁安装成功。 输入图片说明服务器

而后咱们对源码进行编译cookie

./configure --with-http_stub_status_module --with-http_ssl_module --add-module=/dhsq/nginx_upstream_jvm_route/

输入图片说明

提示咱们尚未安装PCRE库,使用yum安装session

# yum install pcre
# pcre-devel

安装以后再次编译 编译仍是不经过,提示缺乏OpenSSL库 输入图片说明app

使用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安装成功。 输入图片说明

三、基于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中了

输入图片说明

相关文章
相关标签/搜索