Nginx与tomcat整合可以实现服务器的负载均衡

标签: 负载均衡
25人阅读 评论(0) 收藏 举报
分类:

 

    Nginx与tomcat整合可以实现服务器的负载均衡。

    在用户的请求发往服务器进行处理时,如果请求太多处理不了,容易造成服务器阻塞、响应慢等情况。这时,如果我们可以有多台服务器的话,就可以实现把请求派发给各台服务器进行处理,这个分发的过程就是由Nginx完成的。同样,由于Tomcat主要用来处理动态的内容,比如jsp文件。那么静态的html/图片等资源就可以交给Nginx来处理,期间也用到了分发。对于有多台服务器时,用一台服务器装Nginx作为代理服务器,把所有请求汇集到这里进行分发到其他服务器。而对于一台服务器实现动静态分离时,则需要在一台服务器上同时搭建Nignx和tomcat,并进行整合。其原理都是一样的,配置的文件也几乎一样。这里,我们只讲在一台服务器上的整合。

     一:安装Nignx

sudo apt-get install nginx

     二:配置nginx.conf文件

    vi 打开nginx文件后,找到http{}节点,在里面添加:

upstream 你的域名{  
    server 你的云主机IP:80;  
     }  

     然后添加一个server。如果是配置多台服务器,则在上面添加多个upstream,下面对应多个server进行分发。这里我只有一个服务器,所以配置一个:

复制代码
 server {

        #侦听80端口

            listen       80;

            #定义使用域名访问

            server_name  www.xx.com;

            #设定本虚拟主机的访问日志

            access_log  logs/www.xx.com.access.log  main;


        # 定义错误提示页面

        error_page   500 502 503 504 /50x.html;

            location = /50x.html {

            root   /root;

        }



       location ~ .*.[jsp|do|action]$ { #所有jsp页面以及do/action请求均交由   tomcat处理
       index index.jsp;
        proxy_pass http://你的域名:80; #转向tomcat处理
    }

       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #设定访问静态文件直接读取,不经过tomcat。过期时间30天
      expires      30d;
     }
     location ~ .*\.(js|css)?$ {
    expires      1h;
    }

        #设定查看Nginx状态的地址

        location /NginxStatus {

            stub_status            on;

            access_log              on;

            auth_basic              "NginxStatus";

            auth_basic_user_file  conf/htpasswd;

        }
     }
复制代码

     三:整合tomcat

sudo vi /etc/nginx/conf.d/proxy.conf

     输入

复制代码

#!nginx (-) 

# proxy.conf proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #获取真实ip #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
复制代码

    按Esc退出编辑模式,输入 :wq  保存并退出。

    配置defalut文件:

sudo vi /etc/nginx/sites-available/defalut

    找到server{}添加:

复制代码
#动态交给tomcat
location ~ .*.[jsp|do|action]$ { 
    index index.jsp;
    proxy_pass 你的域名:80;
}




静态直接读取,不结果tomcat。过去时间30天

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location
~ .*.(js|css)?$ {
expires 1h;
}

复制代码

     保存并退出。

    四:测试。

    重启你的云主机。登录ubuntu后,分别启动nginx和tomcat。(注意:重新部署项目,或者每次关机重启后,都需要分别启动tomcat和nginx)!启动nginx:/etc/init.d/nginx 启动tomcat:bin目录下 ./startup.sh

    然后在浏览器分别输入  你的域名  以及    你的域名:80/index.jsp  ,发现都跳转到同一页面。说明整合成功~

原文地址:http://www.cnblogs.com/ygj0930/p/6386135.html

查看评论

同一个服务器部署多个Tomcat并用Nginx实现负载均衡分担

为了实现服务器升级不影响用户使用,有必要配置两个tomcat在一个或多个服务器中。下面介绍在同一个服务器配置两个Tomcat的过程。 步骤如下: 1、拷贝原来的Tomcat到另外一个目录,如:tom...
  • ClementAD
  • ClementAD
  • 2015-03-06 19:22:08
  • 5509

【Linux运维-集群技术进阶】Nginx+Tomcat实现Web服务器的负载均衡

拓扑环境 服务器名称 系统版本 预装软件 IP地址 Nginx服务器 CentOS 7 最小安装 Nginx 192.168.22.227 Web服务器A Ce...
  • u010028869
  • u010028869
  • 2016-01-08 21:00:27
  • 6909

Windows环境下实现Nginx+2tomcat实现负载均衡

在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新。但这可能会出现一些状况:   1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但...
  • xuxiaoxie
  • xuxiaoxie
  • 2016-05-25 14:55:16
  • 1652

Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)

摘要:随着网站的访问量越来越多,所以就考虑给网站增加服务器了,现在比较流行的做法就是给网站做集群环境,下面我把我做的过程记录一下,方便日后查看,同时也希望可以帮助到有需要的朋友! 一:首先是环境: 1...
  • sxdtzhaoxinguo
  • sxdtzhaoxinguo
  • 2015-10-16 19:31:49
  • 7202

Nginx+Tomcat搭建高性能负载均衡集群

一、       工具   nginx-1.8.0   apache-tomcat-6.0.33 二、    目标   实现高性能负载均衡的Tomcat集群:      三、    ...
  • wang379275614
  • wang379275614
  • 2015-08-19 11:45:23
  • 93663

Mac下 tomcat+nginx试验负载均衡 简单模拟

1.下载两个不同版本的tomcat  打开各自server.conf修改tomcat端口号,主要为了一台电脑下运行两个tomcat防止端口冲突 第一个tomcat:修改port由8080改为180...
  • lanqibaoer
  • lanqibaoer
  • 2017-06-03 17:15:56
  • 514

同一个服务器部署两个Tomcat并用Nginx实现负载分担

为了实现服务器升级不影响用户使用,有必要配置两个tomcat在一个或多个服务器中。下面介绍在同一个服务器配置两个Tomcat的过程。 步骤如下: 1、拷贝原来的Tomcat到另外一个目录,...
  • qishuo_java
  • qishuo_java
  • 2015-12-04 16:53:14
  • 3170

使用nginx1.10.2为两台tomcat服务器做负载均衡

公司要上线一个新应用,需要部署在两台服务器上(都是物理机),并且需要使用nginx做负载均衡,分担压力,因为访问量可能会很多。可惜只有两台服务器,要是有三台的话,那我就其中2台装tomcat,用来部署...
  • lvyuan1234
  • lvyuan1234
  • 2016-12-12 17:10:25
  • 4407

Nginx+tomcat实现负载均衡

Nginx 反向代理初印象Nginx (“engine x”) 是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占有内存少,并发能力强,事实上nginx的...
  • dylanzr
  • dylanzr
  • 2016-08-06 11:20:25
  • 10778

采用nginx让多个tomcat实现负载均衡

由于目录已将项目正式部署并发布了,但由于时不时地会出现bug,修复bug再次提交后,会让项目出现短时间的无法访问的问题,虽然时间虽短,但还是会影响用户的体验。为了不让用户察觉出项目的变动,于是我便采用...
  • puhaiyang
  • puhaiyang
  • 2016-03-03 20:03:39
  • 1230
    个人资料
    持之以恒
    等级:
    访问量: 3561
    积分: 204
    排名: 42万+