手机端小强原创文章,java小强个人博客站点
当前位置: 首页 >> 服务器 >> Win2003下Apache与Tomcat搭建集群环境

Win2003下Apache与Tomcat搭建集群环境

39051 服务器 | 2014-7-9

其实Apache把集群搭建起来并不麻烦,我这里也是从网上找了一些资料自己配置出来的,当然有一些参数需要自己设置下,做到最优

 

这里先分享一些内容,一些细节可以参考:
Apache HTTP Server 与 Tomcat 的三种连接方式介绍 http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/
Apache优化:修改最大并发连接数 http://www.365mini.com/page/apache-concurrency-configuration.htm

 

搭建集群首先是下载软件,因为公司这边的服务器是Win2003的,所以也节俭了一些操作:
Apache下载地址:http://httpd.apache.org/ 我下载的是Apache httpd 2.2.27 Released
Tomcat 下载地址:http://tomcat.apache.org/download-60.cgi 我下载的是6.0.39的解压版

 

首先是配置Tomat,因为Tomcat就是集群的各个节点,首先要保证各个节点能正常运行起来:
做两个节点,解压Tomcat文件夹分别命名为tomcat-node1,tomcat-node2


配置Tomcat

Tomcat启动内存:
Bin下catalina.bat,因为是Win2003,Linux下是catalina.sh,在文件的最头部增加:

set JAVA_OPTS=-Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

如果是Linux,只是写法稍微不同:

JAVA_OPTS="-server -Xms256m -Xmx1030m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

具体各个参数的含义和具体优化方案,谷歌“tomat 启动内存”,这里需要指出的是,在Windows下,JVM启动内存最大是设备内存的1/4,我这台机器不管你设置多大,都是1300M。

 Tomcat日志配置:

conf下的logging.properties,这里你可以不管它,但是需要指出的是,如果不配置,服务长久运行下去后,日志可能会出现占满磁盘的情况,到时会造成宕机的情况,哥就遇到过,不多说了。
配置日志,需要注意的几点有,1:日志输出地址。2:日志输出级别。3:日志输出大小
想尽配置自己谷歌吧,以为即使你不配置也不影响继续往下看。

 Tomcat监控配置:

conf下tomcat-users.xml,这里文件就这么点内容:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
</tomcat-users>

我说的是除了注释以外。这里就增加一个用户:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="admin" password="admin_cui" roles="manager"/>
</tomcat-users>

更想尽的配置,好吧,你懂的。配置之后你可以通过访问http://localhost:8011/manager/html 来查看当前连接处理情况。

 

核心、重点,server.xml,三个端口,一个名字:

管理端口:

shutdown="SHUTDOWN"前面有一个端口,第一个端口,我就设置为8012,第二个就是22

<Server port="8012" shutdown="SHUTDOWN">

 服务端口:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="50" maxIdleTime="120000" />
<Connector executor="tomcatThreadPool" address="0.0.0.0" port="8011" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="120000" 
maxKeepAliveRequests="1" redirectPort="443" maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="500" compression="on" 
compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" disableUploadTimeout="true"/>

 可以看出来,这里都是优化过的配置,包括NIO、连接池、编码,压缩等,各个参数含义不多说了。
AJP端口:

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

 jvmRoute名字,集群时用:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm3">

 下面的一段配置也放开:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />

 如果你启动Tomcat能启动,且访问8011可以访问,那么这个节点就配置好了,其他节点都一样,记得三个端口一个名字各个节点需不一样。

 

配置Apache
配置文件httpd.conf是最主要的配置文件,配置时需要注意以下几点:

放开代理模块的加载:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

放开对网站的访问:

这里我就不再啰嗦配置,直接全放开了

Deny from All
的全部改为
allow from all

加载配置文件:

放开如下几个配置文件的加载,把前面的#去掉即可

Include conf/extra/httpd-mpm.conf 配置多路处理模块(MPM) 的辅配置文件
Include conf/extra/httpd-vhosts.conf 配置虚拟主机的辅配置文件
Include conf/extra/httpd-default.conf 配置与Apache服务自身相关的辅配置文件

httpd-mpm.conf和httpd-default.conf默认即可,如果你想根据实际情况进行一些相关配置,可以参考前面分享的文章

httpd-vhosts.conf配置:

配置集群节点服务标记,ServerAlias配置为本地IP即可

<VirtualHost *:80>   
  ServerAdmin webmaster@dummy-host3.wuxian.com
  ServerName 192.168.1.102
  ServerAlias 192.168.1.102
  ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On   
  ProxyPassReverse / balancer://cluster/   
  ErrorLog "logs/lbtest-error.log"  
 CustomLog "logs/lbtest-access.log" common  
</VirtualHost>

httpd.conf配置:

在httpd.conf最底部增加如下配置

ProxyRequests Off   
<proxy balancer://cluster>   
   BalancerMember ajp://127.0.0.1:8019 loadfactor=1 route=jvm1 
   BalancerMember ajp://127.0.0.1:8029 loadfactor=1 route=jvm2 
</proxy>

开启反向代理,使用AJP代理访问,loadfactor是分发权重,route是之前在Tomcat中定义的名字,注意这里是AJP端口不是Tomcat服务端口
 
Tomcat性能调优和Apache配置文件的定制,是影响集群性能的重要两点。
到此其实已经配置完成了,还是需要提一点的是,会话共享,在各个工程的web.xml中增加<distributable/>这配置即可。

 

把Tomcat小猫都启动起来,然后启动Apache,访问实际工程即可。


推荐您阅读更多有关于“ Tomcat apache 集群 Windows 性能 ”的文章

上一篇:Linux下apache+tomcat+jk集群 下一篇:Apache安装问题:configure: error: APR not found . Please read the documentation

猜你喜欢

发表评论:

评论:

回复 java小强 评论于 2017-05-04 14:21
JAVA_OPTS=”-server -Xms1536m -Xmx1536m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn500m -XX:MaxTenuringThreshold=5″
JAVA_OPTS并不是已成不变的,不同的应用、软硬件环境下,要想充分发挥应用的性能,这些参数里边的设置可是非常有技巧和具有经验积累的。
经过查找资料,先看下JAVA_OPTS参数表示的意义。

-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

稳定的开发架构环境下,建议出一份有实践、经验论证的JAVA_OPTS配置,能够非常切合实际的服务于当前开发、测试的软件流程。
个人资料
blogger

java小强
没有思考,人生的路会越走越难!

搜索
分类
最新微语
  • 不是本人但真实经历,如果你得了绝症抑或大病,能告诉的人两只手能数过来,而能一直陪床真正帮你的人,一只手就够了。也许你会说我亲戚多哥们多同学多云云,但真遇上的时候,你敢说吗?即使你说了会有人像你想的那样吗?不要尝试考验人性,人走茶凉之类的话都听过,但不遇到事我们未曾理解其中的道理。

    2018-11-07 11:05

  • 每个人的一生都是不同的,我们都需要负重前行。每一种生活都是不同的,我们都需要真实面对。所经历的,让我学会一件事,顺其自然。人,总有很多自己想要的,总有很多困难要面对,总有很多人要去爱,我们不断思考人生,却总是迷失自己。如今,我们最缺的不是金钱和时间,而是忘记了自己的初衷。

    2018-09-28 14:42

  • 车也学了,年也过了,生日也过了,村里的会也赶了,这次,是真的,年过去了。不过我没回京,也没有在家找工作,我在等什么吗?反正现在正合了我这个懒人的要求,不过,我歇不住,思考下人生。

    2018-03-20 00:11

  • 8月1日,我已离开奋斗多年的北京。不知道是暂时的离开,还是永久的离别,反正已经离职在家,告别每日上班,每天苦累的煎熬,过一段属于自己的生活。以前是专职工作,现在专职生活。

    2017-08-18 12:47

  • 又弄完一个项目,累成狗,但是感觉又进步不少,除了很多坑已经踩过,做起来也是轻车熟路。同时也认识到,程序不在于你多牛逼,而是在乎你的细节把控度,而细节的关注,是一个优秀程序员必须要注意的。另外,要相信自己,勇敢向前,没人生下来就是成功的,而且,成功的路,比成功本身更重要。

    2017-06-30 09:46

  • 更多»

最新文章
热门文章
随机文章