Nginx + Tomcat Windows下的负载均衡配置

一、为什么需要对Tomcat服务器做负载均衡?
    Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过500的并发数会出现Tomcat不能响应新的请求的情况,严重影响网站的运行。同时如果访问量非常大的情况下,Tomcat的线程数会不断增加。因此会占据大量内存,严重时出现内存溢出的现象,这时需要重启Tomcat以释放内存,阻断了网站的运行。
    所以对Tomcat做负载均衡便很有必要。目前可以和Tomcat做负载均衡的主流服务器是Apache,但是Nginx由于功能多、配置简单等优点成为很多负载均衡服务器的首选。Nginx的并发数可达到50000,所以理论上可以和Tomcat以1:100的比例来配置,这边可以很好的解决网站并发瓶颈问题。

二、Nginx+Tomca在Windows下负载均衡的配置:
    先秀一下我的环境: Nginx1.3.11 + Tomcat 6.0(2个)、Win 7。
    下面是配置过程:
    1、将nginx-1.3.11.rar直接解压到D:盘。
    2、将apache-tomcat-6.0.26.rar解压到D:盘,既然是做负载均衡将tomcat拷贝两份,分别命名tomcat_1、tomcat_2。
    3、将要发布的项目部署分别部署到两个Tomcat根目录下的webapps下,保证两个Tomcat下的项目名相同。
    4、修改tomcat_2的配置文件,该配置文件位于/conf下,文件名为server.xml, 修改其中的<Server port="8005" shutdown="SHUTDOWN">            为<Server port="8006" shutdown="SHUTDOWN">,修改其中的

?


1

2

3

<Connector port="8080 protocol="HTTP/1.1"

          connectionTimeout="20000"

          redirectPort="8443"/>

?


1

2

3

<Connector port="8088 protocol="HTTP/1.1"

        connectionTimeout="20000"

        redirectPort="8443"/>

?


1

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

(ajp是一个协议,tomcat可以用来服务器集群,也可以在csdn找到更详细的ajp资料)为

?


1

<Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />

5、修改Nginx配置文件nginx.conf,该文件位于Nginx根目录下的/conf目录下
    a、在#gzip on;后面加入下面配置:

?


1

2

3

4

5

upstream localhost {

    server localhost:8080 weight=5;

    server localhost:8080 weight=5;

    ip_hash;

}

其中server localhost:8080为tomcat_1的启动地址, server localhsot:8088为tomcat_2的启动地址,ip_hash用于做session同步。 
    b、修改

?


1

2

3

4

location / {

    root html;

    index index.html index.htm;

}

改为:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

location / {

      root   html;

      index  index.html index.htm;

      proxy_pass   http://localhost;

      proxy_redirect    off;

      proxy_set_header   Host $host;

      proxy_set_header   X-Real-IP $remote_addr;

      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 

      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;        

  }

其中proxy_pass参数和upstream localhost{}对应。

经过上面这些步骤,负载均衡配置完成,下面分别启动tomcat_1、tomcat_2,然后双击nginx根目录下nginx.exe文件或者使用start nginx启动(关闭是: nginx -s stop),打开浏览器,输入地址: http://localhost便可看到tomcat的首页了。

了解更多关于Nginx的配置: http://www.howtocn.org/doku.php

---------------------------------------------------------------------------------------

后端是两台tomcat服务器,我们简称为node1 和node2,访问地址分别是 http://192.168.1.2:8080 和 http://192.168.1.4:8080

前端使用nginx来对这两个服务进行负载均衡。

首先下载apahce tomcat7 并在192.168.1.4和192.168.1.2上进行部署(可以分别修改两台服务器上部署的文件的index.jsp 用来区分node1和node2)

node1:

node2:

下载 nginx server(目前稳定版是1.4.4),解压之后双击 nginx.exe启动

conf目录下的nginx.conf文件是nginx的配置文件,我们在这里配置负载均衡

下面给出配置文件,

http {
include mime.types;
default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

upstream localhost{ 
#这里指定多个源服务器,ip:端口,80端口的话可写可不写 
server 192.168.1.2:8080; 
server 192.168.1.4:8080; 
}

server {
listen 80;
server_name localhost;

location / {

#启动代理

proxy_pass http://localhost;
}

}

}

其中的upstream localhost这一项在原先的配置文件里边没有,需要加上。

确保node1和node2两个节点可用,然后启动nginx 访问 http://localhost  nginx就会在node1和node2上做负载均衡。页面上会随机显示 NODE1或NODE2

时间: 11-07

Nginx + Tomcat Windows下的负载均衡配置的相关文章

nginx tomcat 集群与负载均衡配置实例

一.nginx tomcat 中用到的概念介绍 1.反向代理,当客户端的请求到来之后,反向代理接收这个请求然后将这个请求转发到后台的服务器上,如果做负载均衡的话,就会将这个请求分发到负载均衡的那些服务器上去. 正向代理端代理的是客户端 反向代理代理的是服务端.请求这个反向代理服务器,就好比是直接请求资源所在的服务端. 2.这里说到的负载均衡,就是nginx接收到客户端的请求之后将这些请求按照自己配置的方式分发给后台服务器(tomcat服务器),分发方式有轮回方式,weight 配置权重,权重越大

Nginx实现集群的负载均衡配置过程详解

Nginx实现集群的负载均衡配置过程详解 Nginx 的负载均衡功能,其实实际上和 nginx 的代理是同一个功能,只是把代理一台机器改为多台机器而已. Nginx 的负载均衡和 lvs 相比,nginx属于更高级的应用层,不牵扯到 ip 和内核的修改,它只是单纯地把用户的请求转发到后面的机器上.这就意味着,后端的 RS 不需要配置公网. 一.实验环境 Nginx 调度器 (public 172.16.254.200 privite 192.168.0.48)RS1只有内网IP (192.168

Nginx反向代理及简单负载均衡配置

nginx配置文件主要分为六个区域:main section.events section.http section.sever section.location section.upstream section. 以下为Nginx的主要配置 #main module配置 use nobody;  #设置运行用户 worker_processes 1;    #设置启动进程,通常设置成cpu数量相当 error_log  logs/error.log;  #全局错误日志定义类型,[ debug

集群下Dubbo负载均衡配置

在集群负载均衡时,Dubbo提供了4种均衡策略,默认为Random(随机调用) 负载均衡策略: 1).Random LoadBalance(随机,按照权重的设置随机概率) 2).RoundRobin LoadBalance(轮询,按照权重设置轮询比率) 请求次数 提供者ID 1 服务提供者1 2 服务提供者2 3 服务提供者3 4 服务提供者1 5 服务提供者2 6 服务提供者2 7 服务提供者2 3).LeastActive LoadBalance(最少活跃数,ping值(延迟低)的调用,相同

配置nginx实现windows/iis应用负载均衡

nginx是俄罗斯人开发的一款跨平台的高性能HTTP和反向代理服务器,可以利用它实现web应用服务器的负载均衡. 反向代理是指将用户请求通过代理服务器转发给后端内部网络的应用服务器,典型的应用比如配置nginx.lighttpd等反向代理软件实现负载均衡.与反向代理相对应的叫正向代理,典型的应用比如vpn.用户直接访问google网站访问不了,而代理服务器可以访问google网站.这样用户就通过访问代理服务器,从而间接的达到访问google网站的目的. 负载均衡是指将用户发起的大量web请求通过

生产环境下的负载均衡配置

一.简介 最近新上了一个营销项目(和微信结合),后台用的是Tomcat.开始上线的时候因为人数不多感觉没太多问题,随着正式环境的发布,开人有人反映服务器页面无法打开,连入tomcat查看时发现连接数已满且CPU也用到了极限,初始的架构如下图所示,其使用1台tomcat和一台数据库服务器. 该业务系统主要用于微信营销,顾客在微信上下单购买(抢)对应的商品,抢购成功后该商品(券)会自动生成条形码保存在该用户的注册信息中.用户凭券到实体店完成支付和取货操作.因为涉及券核销的问题(支付完成后即时核销),

负载均衡 | Nginx+Tomcat 动静分离实现负载均衡

0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 基本配置这个文件,就可以实现负载了.但是里面的各种关系要了解就比较麻烦了.这篇博客,也不是教学篇,是记录一下,方便以后自己看了. 2.基础讲解 现在假使有一台电脑192.168.8.203这台电脑,上面部署了Tomcat,里面8080端口有J2EE的服务,通过浏览器可以正常浏览网页.现在有一个问题tomcat是一个比较全面的web容器,对静态网页

Nginx + Tomcat 动静分离实现负载均衡

0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 # 定义Nginx运行的用户 和 用户组 如果对应服务器暴露在外面的话建议使用权限较小的用户 防止被入侵 # user www www; #Nginx进程数, 建议设置为等于CPU总核心数 worker_processes 8; #开启全局错误日志类型 error_log /var/log/nginx/error.log info; #进程文件

nginx在windows下多域名简单配置

1. windows下安装nginx的目录结构如下: 2. 在nginx-1.12.1目录下conf/nginx.conf 内容 #user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { liste