- 浏览: 129085 次
- 性别:
- 来自: 齐齐哈尔滨
文章分类
最新评论
-
sunstar356:
不错 有帮助
Java反射实体类属性(get ,set方法) -
DarkWingBoy:
好多银行网站都是SSH框架做的吧。。。
SSH框架的瓶颈在哪里? -
OnePiece_2012:
很好 多谢了
中科软面试笔试题 -
hzw2312:
.......!
够给力!
JavaScript 获得 汉字 的 完整 拼音 -
tkgguter88:
初学者。谢谢分享
JavaScript 获得 汉字 的 完整 拼音
一、 为什么需要对 Tomcat 服务器做负载均衡: Tomcat 服务器作为一个 Web 服务器,其并发数在 300-500 之间,如果有超过 500 的并发数便会出现 Tomcat 不能响应新的请求的情况,严重影响网站的运行。另外,在访问量大的情况下, Tomcat 的线程数会不断增加。由于 Tomcat 自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动 Tomcat 以释放占用的内存,这样做便会阻断网站运行。 所以对 Tomcat 做负载均衡便很有必要。目前可以和 Tomcat 做负载均衡的主流服务器是 Apache ,但是 Nginx 由于功能多、配置简单等优点逐渐成为很多负载均衡服务器的首选。 Nginx 的并发数可达到 50000 ,所以理论上可以和 Tomcat 以 1:100 的比例来配置,这样便可以很好的解决网站并发瓶颈问题。 二、 Nginx+Tomcat 在 Windows 下负载均衡配置方法: Nginx+Tomcat 在 Windows 下做负载均衡相对在 Linux 下简单不少,因为不论是 Nginx 还是 Tomcat 只需要下载 Windows 下的安装包解压到某个目录下,然后就可以做配置了。 我选择的 Nginx 是 nginx-0.8.49 这个版本, Tomcat 选择的是 apache-tomcat-6.0.26 。 下面就是配置过程 : 1. 将 nginx-0.8.49.rar 压缩包直接解压到某个目录下 ( 如 D:/ 负载均衡 /nginx) 。 2. 将 apache-tomcat-6.0.26.rar 压缩包解压,因为是做负载均衡,所以至少要解压两个。 ( 如分别解压到 D:/ 负载均衡 /tomcat_1 和 D:/ 负载均衡 /tomcat_2 下面 ) 。 3. 将要发布的项目发布到两个 Tomcat 根目录下的 webapps 下,保证两个 Tomcat 下面的项目名称相同。 4. 修改其中一个 Tomcat 的配置文件,该配置文件位于 Tomcat 目录下的 /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" /> 修改后的文件如下:
<?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Note: A "Server" is not itself a "Container", so you may not define subcomponents such as "Valves" at this level. Documentation at /docs/config/server.html --> <Server port="8006" shutdown="SHUTDOWN"> <!--APR library loader. Documentation at /docs/apr.html --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html --> <Listener className="org.apache.catalina.core.JasperListener" /> <!-- Prevent memory leaks due to use of particular java/javax APIs--> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html --> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html --> <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <!-- A "Service" is a collection of one or more "Connectors" that share a single "Container" Note: A "Service" is not itself a "Container", so you may not define subcomponents such as "Valves" at this level. Documentation at /docs/config/service.html --> <Service name="Catalina"> <!--The connectors can use a shared executor, you can define one or more named thread pools--> <!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> --> <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="8088" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- A "Connector" using the shared thread pool--> <!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation --> <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- An Engine represents the entry point (within Catalina) that processes every request. The Engine implementation for Tomcat stand alone analyzes the HTTP headers included with the request, and passes them on to the appropriate Host (virtual host). Documentation at /docs/config/engine.html --> <!-- You should set jvmRoute to support load-balancing via AJP ie : <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> --> <Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> --> <!-- The request dumper valve dumps useful debugging information about the request and response data received and sent by Tomcat. Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.valves.RequestDumperValve"/> --> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <!-- Define the default virtual host Note: XML Schema validation will not work with Xerces 2.2. --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> </Host> </Engine> </Service> </Server>
5. 修改 Nginx 配置文件 nginx.conf ,该文件位于 Nginx 根目录下的 /conf 下面。
① 在 #gzip on; 后面加入下面配置 :
upstream backend {
server localhost:8080;
server localhost:8088;
ip_hash;
}
其中 server localhost:8080 为第一个 Tomcat 的启动地址, server localhost:8088 为第二个 Tomcat 的启动地址, ip_hash 用于做 session 同步。
② 修改第一个 server{} 配置中的 listen 80; 改为新的端口号,因为我的本机 80 端口被 IIS 占用,因此将此处改为 listen 800; 。并将
location / {
root html;
index index.html index.htm;
}
改为:
location / {
root html;
index index.html index.htm;
proxy_pass http://backend;
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 backend{} 对应。
经过上面这些步骤,负载均衡配置就完成,下面前分别启动两台 tomcat ,然后双击 nginx 根目录下的 nginx.exe 文件或者用 start nginx 启动 nginx ,打开浏览器,输入地址 :http://localhost:800 便可看到下面画面 :
这说明已经成功跳转到 Tomcat 上面。下面以来电秀具体项目为例,输入地址: http://localhost:800/ldxwebpersonal/personal/index/index.action 便可看到下面来电秀首页画面 :
我们再看看两个 Tomcat 下面的日志显示 :
端口号为 8080 的显示 :
端口号为 8088 的显示 :
这说明两个 tomcat 已经实现负载均衡。
发表评论
-
LNMT一键安装包 beta 0.2 版本正式发布
2015-02-27 17:05 659LNMT一键安装包是一个用Linux Shell编写的可以 ... -
CentOS 安装7-Zip 以及解压命令
2012-03-31 13:34 2704在SHH或者终端下输入:yum –y install ... -
天堂在招程序员。
2011-10-14 09:51 9642011年10月5日下午4时52分苹果前CEO史蒂夫·乔 ... -
APKBank.NET 安卓银行隆重上线运营。
2011-09-01 10:10 933安卓银行(APKBank.NET)于2011年9月1 ... -
攻击Google的Jarlsberg,学习安全漏洞知识
2011-04-27 15:54 1105很多人都想知道黑客是 ... -
Nginx+tomcat配置集群负载均衡
2011-04-12 15:23 2965作者:小生、我怕怕 ... -
apache 封 IP 的方法
2011-04-12 14:31 1305以Apache 2.2作为服务器: 1. 在配置文件http ... -
Windwos下MySql集群配置
2011-03-21 11:00 1180步骤如下: 1、准备服务器 管理节点(MGM) 192.1 ... -
hao wen zhang
2011-03-05 15:42 0http://sarin.iteye.com/category ... -
Windows下配置mysql集群
2010-12-21 14:02 1205步骤如下: 1、准备服务器 管理节点(MGM) 192.1 ... -
apache与tomcat集成
2010-12-14 13:05 926第一步:取得软件 获取要用到的软件如下: Jdk1.6版本 ... -
安装Nginx过程全解析
2010-12-11 14:16 995安装Nginx的时候有需要小技巧和小窍门。掌握好这 ... -
nginx+tomcat集群负载均衡(实现session复制)
2010-12-11 14:01 981N ... -
基于Nginx的tomcat负载均衡和集群配置
2010-12-11 13:53 1135今天看到"基于apache的tomcat负载均衡和集 ... -
apache配置详解
2010-11-30 10:53 1128#Apache配置详解 http://lamp ... -
负载均衡
2010-11-30 10:06 1116所谓负载均衡(loadbalanc ... -
apache+tomcat 负载均衡+session绑定 配置集群环境
2010-11-30 09:21 1147其中负载均衡由Apache2.2. ...
相关推荐
【Nginx+Tomcat在Windows下做负载均衡】 负载均衡是一种网络技术,它通过将流入的网络流量分发到多个服务器,以提高服务的可用性和响应速度,防止单个服务器过载。在这个场景中,Tomcat作为Java应用服务器,由于...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Windows+Nginx+Tomcat的组合在处理高并发请求时,常被用来搭建负载均衡系统,同时通过session共享来保证用户会话的一致性。这个“Windows+Nginx+Tomcat做负载...
- **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的Tomcat实例,从而实现负载均衡,提高系统的可用性和响应速度。 - **静态资源处理**:Nginx对静态文件(如CSS、JavaScript、...
标题 "Redis实现Nginx+Tomcat在windows平台上配置负载均衡的session共享(2)" 指向的是一个关于如何在Windows环境下使用Redis来实现Nginx与Tomcat之间的session共享,从而达到负载均衡配置的技术实践。在这个过程中...
Windows+Nginx+Memcached+Tomcat6负载均衡
本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多个版本的Tomcat,即qdky-tomcat-6.0.44.6、qdky-tomcat-6.0.44.5、qdks-...
总结起来,这个"windows系统下nginx+tomcat+redis做负载均衡和session粘滞附整套解决方案"是通过Nginx实现负载均衡,Tomcat处理应用逻辑,Redis存储和同步Session,三者结合提供了高效且稳定的Web服务架构。...
在windows系统上nginx+memcached+tomcat的负载均衡 相关配置过去请查看 http://blog.csdn.net/xu_xiao_ji/article/details/51682693
### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...
本教程将详细介绍如何在Windows环境下利用Nginx作为反向代理和负载均衡器,结合Tomcat服务器搭建一个高可用的集群。Nginx以其高性能、轻量级的特性,在Web服务器领域广泛应用,而Tomcat则是Java应用服务器,主要用于...
对于Nginx和Tomcat的部署,手册将详细解释如何配置Nginx作为反向代理,将HTTP请求转发到Tomcat,实现负载均衡和高可用性。Redis集群的建立则会涉及主从复制、哨兵系统或集群模式的设置,以提高数据的读写性能和容错...
在Windows环境下,配置Nginx和Tomcat集群架构,需要以下步骤: 1. 安装Nginx和Tomcat:分别下载并安装两个服务器的Windows版本。 2. 配置Nginx:编写Nginx配置文件,设置反向代理规则,指向Tomcat实例的IP和端口,...
### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx官方网站下载适合您操作系统的最新版本。推荐下载稳定版以确保运行稳定。 - **解压文件**:将...
本教程将探讨如何在Windows环境下,利用Nginx作为反向代理和负载均衡器,与Tomcat应用服务器配合,搭建一个负载均衡和集群环境。这种配置能够提升系统的稳定性和处理能力,确保即使在服务器压力大的情况下,也能为...
这里我们关注的是如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat应用服务器集群配合,实现负载均衡,并且确保Session数据在多个Tomcat实例之间共享。这个场景对于大型网站或高并发的应用尤其实用,...
### NGINX + TOMCAT 在 Windows 下的负载均衡配置详解 #### 一、项目背景及目标 本案例旨在实现一个基于Windows平台的NGINX与TOMCAT的负载均衡集群配置。具体而言,通过配置NGINX作为前端HTTP服务器,后端连接两个...