文档章节

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

会爬树的蜗牛
 会爬树的蜗牛
发布于 2013/01/13 18:08
字数 706
阅读 3510
收藏 59

一、为什么需要对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">,修改其中的

<Connector port="8080 protocol="HTTP/1.1" 
          connectionTimeout="20000"
          redirectPort="8443"/>
        为
<Connector port="8088 protocol="HTTP/1.1" 
        connectionTimeout="20000"
        redirectPort="8443"/>


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
(ajp是一个协议,tomcat可以用来服务器集群,也可以在csdn找到更详细的ajp资料)为
<Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />


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

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、修改
location / { 
        root html; 
        index index.html index.htm; 
    }
    改为:
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

© 著作权归作者所有

共有 人打赏支持
会爬树的蜗牛
粉丝 8
博文 39
码字总数 11047
作品 0
成都
程序员
加载中

评论(4)

osc皮皮
osc皮皮
root 路径怎么设置 tomcat里面发布的项目
会爬树的蜗牛
会爬树的蜗牛

引用来自“yvon”的评论

ip_hash是对于ip的负载均衡,如果要实现一些条件的session粘连以及对于session的负载均衡,可以使用jvm_route

我也尝试过jvmroute,不过对session的负载均衡还是有影响!
y
yvon
ip_hash是对于ip的负载均衡,如果要实现一些条件的session粘连以及对于session的负载均衡,可以使用jvm_route
SilenceSu
SilenceSu
学习了!
nginx负载均衡以及静态资源的反向代理实施方案

nginx负载均衡以及静态资源的反向代理实施方案 作者:袁旭云 nginx介绍 nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个B...

IT小香猪
2016/09/01
477
1
Nginx在Windows平台的配置

1.1.1 课程目标: 课程目标: 能够使用Nginx搭建Tomcat集群,并完成负载均衡. 1.1.2 Nginx的概述: 什么是Nginx: 为什么使用Nginx: 度娘的解释: 背景: 互联网飞速发展的今天,大用户量高并发已经...

pxk
2017/10/29
0
1
day24_Nginx学习笔记

一、测试 二、代理      反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返...

黑泽明军
06/15
0
0
nginx+tomcat 另类负载均衡

一、部署背景 某服务器A:10.68.4.198 域名:edi.qnb.com ( tomcat应用,web 访问但须帐密认证,其他服务器连接查询却无须认证 ) 因业务需要,需要对A服务器做负载均衡。要求用nginx的upstr...

王九龙
2015/08/28
194
0
搭建Nginx + Memcached + Tomcat 集群记录

零:前言 1、单是从软件层面做负载,只能单主nginx服务器,主服务器挂了,系统就挂了 2、实现多台主nginx服务器,可采用DNS负载均衡,即同一个域名绑定多个IP(nginx服务器),按顺序分发 3、...

凡尘里的一根葱
2015/10/22
289
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部