ubantu 下 tomcat + nginx 实现负载均衡

Posted 旅途cxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubantu 下 tomcat + nginx 实现负载均衡相关的知识,希望对你有一定的参考价值。

  在自己的ubantu虚拟机下实现nginx+tomcat负载均衡,自己本地练着玩,挺有意思的,记录下过程。

 以下参考了几篇有用的博文:

  1. Tomcat+Nginx搭建高性能负载均衡集群  http://blog.csdn.net/wang379275614/article/details/47778201;
  2. 在Linux里安装、启动nginx   http://blog.csdn.net/molingduzun123/article/details/51850925;http://www.cnblogs.com/wyd168/p/6636529.html

 

  进入正题:首先在服务器上安装两个tomcat,修改index.jsp(以区分访问的是哪个tomcat),然后分别启动,不明白的详见上面第一片博文。效果如下

       重点注意两个tomcat的端口要修改得不同(三个地方)

 

  然后安装nginx:需要的库(nginx依赖前面两个):PCRE库(https://sourceforge.net/projects/pcre/files/pcre/);zlib库(http://zlib.net/);nginx(http://nginx.org/en/download.html)。分别安装三个程序,流程一样:

tar -xvf xxx.tar.gz   
cd xxx-1.2.8  //解压后的文件夹   
./configure   
make  
make install  

    在上面的链接博文中交代安装完这三个文件后就OK了,然后配置nginx,进入nginx/conf/nginx.conf文件,改几个核心配置

events {  
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
}  
  
http {  
    include       mime.types; #文件扩展名与文件类型映射表  
    default_type  application/octet-stream;#默认文件类型  
  
    sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。  
      
    keepalive_timeout  65; #长连接超时时间,单位是秒  
  
    gzip  on;#启用Gizp压缩  
      
    #服务器的集群  
    upstream  netitcast.com {  #服务器集群名字(下面会配置使用它的地方)  
        server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
        server    127.0.0.1:28080  weight=2;  
    }     
  
    #当前的Nginx的配置:这里配置的服务器名和监听端口,就是提供服务的地方,会交给下线proxy_pass配置的服务器集群地址处理
    server {  
        listen       80;#监听80端口,可以改成其他端口(最好改下,80端口一般会被占用)  
        server_name  localhost;##############   当前服务的域名  
  
    location / {  
            proxy_pass http://netitcast.com;  
            proxy_redirect default;  
        }  
          
  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  

配置完成后启动nginx:

nginx -c /home/cxd/java/nginx/nginx-1.8.1/conf/nginx.conf 

但是我的nginx启动失败:提示

不知道是什么原因提示还没安装nginx,按照其他人提供的方式我实际已经在之前安装了nginx(./configure;make;make install这几个命令)

跟着提示走,继续安装:

sudo apt-get install nginx-core

我只安装了core,有的说要安装全部。

完成后再次启动。

然后就直接访问我们配置的nginx代理的地址:localhost:8089/index.jsp  (8090是nginx配置的监听端口,一开始我的是默认的80,结果端口被占用,启动nginx时就失败了)。

出现的结果很满意,随机访问了两台tomcat的主页,结束。

 

以上是关于ubantu 下 tomcat + nginx 实现负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat部署(原理详解与部署实操)

Ubantu系统安装nginx

ubantu 下编译安装nginx

ubantu ??????nginx HTTP?????????????????????

ubantu+nginx+uwsgi+django部署

阿里云服务器安装nginx(ubantu16.04)