精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-04
1、软件版本: Tomcate 5.5;Apache Httpd 2.2;JDK 1.6;S6240本;WinXP Home Edition操作系统; 2、需求概况: 对外总共有5个服务:www.paoding.net, passport.paoding.net, office.paoding.net, zhidao.paoding.net, post.paoding.net 。这5个服务分别对应5个web应用。由apache httpd作为互联网接入服务器,在80端口接收对这5个服务的请求。apache httpd再将这5个请求分别对应到不同的后端web服务器(Tomcat)处理。这种架构具有多种好处,其中最大的一条是:能够将负载简单地按功能应用分担到不同的物理机器上。另外还有一些好处,比如便于升级、能够利用apache httpd处理静态文件快速的特点离补java web服务引擎对静态资源相对较弱的缺点,。。。。 3、先行步骤: 3.1 在C:\WINDOWS\system32\drivers\etc\host文件中,配置以上5个域名映射到本机即127.0.0.1,同时配置service域名,大致如下: 127.0.0.1 www.paoding.net 127.0.0.1 passport.paoding.net 127.0.0.1 office.paoding.net 127.0.0.1 zhidao.paoding.net 127.0.0.1 post.paoding.net 127.0.0.1 www.service.paoding.net 127.0.0.1 passport.service.paoding.net 127.0.0.1 office.service.paoding.net 127.0.0.1 zhidao.service.paoding.net 127.0.0.1 post.service.paoding.net 3.2 以passport为例,建立一个普通的web application,创建一个jsp,命名为index.jsp,jsp页面上输出“你好,这是passport系统”简单几个字 4、在tomcat中配置passport应用,并确认可用: 4.1 $catalina_home/confi/server.xml文件中,增加Host元素,如下内容: <Host name="passport.service.paoding.net" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/> 4.2 $catalina_home/conf/Catalina下创建passport.service.paoding.net目录,并在这个目下下创建名为ROOT.xml的文件,文件内容如下: <Context docBase="E:/paoding.net/workspace/Passport/WebContent" privileged="true" antiResourceLocking="false" antiJARLocking="false"> </Context> docBase具体配置路径由你的web application路径确定,应根据你的情况进行调整。 4.3 在浏览器访问:http://passport.service.paoding.net:8080/index.jsp,确认正确浏览到该页面。成功后不要关闭Tomcat服务器 5、配置Apache httpd: 5.1 找到apach/conf/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_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 5.2 增加VirtualHost元素,如下: NameVirtualHost *:80 <VirtualHost *:80> ServerName passport.paoding.net ProxyIOBufferSize 8192 ProxyRequests Off ProxyVia Full ProxyPass / http://passport.service.paoding.net:8080/ smax=5 max=20 ttl=120 retry=300 </VirtualHost> 5.3 在浏览器中访问http://passport.paoding.net/index.jsp,确认输出的内容与在Tomcat输出内容一致。如果你看到这个访问能够成功,则表示这次试验完全成功。 6 总结 其他的服务配置类似如此。具体网站时,会配置多个服务器,可以将不同的应用分布在不同的服务器当中。[也就是变更host文件的地址映射] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-04
你这边只是对不同二级域名做了一个代理的重定向,即针对不同的应用进行了分离,没有真正起到负载均衡的作用!
如果passport.paoding.net域名的流量非常大,本身tomcat还是需要承受相同量的load! 而且apache属于应用层load balance,比起二层,三层,四层的均衡负载,性能低很多! 如果各个域名都是一套系统,不如根据请求进行分发!让tomcat集群可以跨应用处理!这样高流量应用分布到5台中间服务器上,效率可以高很多! |
|
返回顶楼 | |
发表时间:2007-02-04
galaxystar 写道 你这边只是对不同二级域名做了一个代理的重定向,即针对不同的应用进行了分离,没有真正起到负载均衡的作用!
如果passport.paoding.net域名的流量非常大,本身tomcat还是需要承受相同量的load! 而且apache属于应用层load balance,比起二层,三层,四层的均衡负载,性能低很多! 如果各个域名都是一套系统,不如根据请求进行分发!让tomcat集群可以跨应用处理!这样高流量应用分布到5台中间服务器上,效率可以高很多! 超大型网站很多都要做特别处理,没有一成不变的通用套路。在负载方面不仅仅要做应用方面的分离,还要把同样的应用部署在不同的物理机器上,通过共享架构实现(可能使用hash将同类型数据存放在不同的共享服务器中,参考memcached)数据共享,或失效通知的方式达到数据一致。 但是,利用apache 或lighttpd等和tomcate/resin之类的结合也是很常见的,能够大大提升性能的,以及进行负载分担,做起来非常简单,“性价比”高。大多数互联网站均可以采用类似的技术。 当然对于超大型,偶瞄了楼上的文章,列出一些参考目录如下(原创的?ZT?): 1、使用负载均衡技术建设高负载的网络站点 2、负载均衡技术全攻略 3、讨论:负载均衡服务器宕机怎么办?! 对了,楼上的,你具体使用什么技术分发请求? |
|
返回顶楼 | |
发表时间:2007-02-04
基于IP分发,LVS应该比较流行的!
均衡负载里,我认为缓存动态内容也是提升高负载的诀窍之一! 我使用ESI,基于squid解析esi,做到缓存动态内容! 其中,缓存载体,我也喜欢memcache! 我的那些文章是从CSDN转的!怕收藏链接,以后找不到了,直接copy过来了,赖得加转载!呵呵! |
|
返回顶楼 | |
发表时间:2007-02-07
Windows xp Home?大量请求?
JDK 6.0也过于新,用于生产系统? 我看你的架构是个实验系统吧? |
|
返回顶楼 | |
发表时间:2007-02-07
frankiehuang 写道 Windows xp Home?大量请求?
JDK 6.0也过于新,用于生产系统? 我看你的架构是个实验系统吧? 示例性给出一个东西,同时告知示运行的环境,应该是一种起码的道德。 可以把xp home换成你喜欢的操作系统,jdk换成你认为ok的版本,对本帖子内容没有任何影响。 这种架构不是什么实验系统,实实在在的在现实中普遍被使用。 [几百万用户的网站使用类似这种架构用的好好的] [不一定是apache,同时apache也不是最好的;同时前后服务器之间连接还有其他文章可做] 了解高效的Web服务器和java web服务器的各自优缺点,以及帖子中阐述的一些其他特性,你就知道这是一种不错选择, not 纸面谈兵 JDK6.0为什么不能用于“生产系统”,给点具体的理由? 或者请你给出升级jdk时你遇到的具体困难,这里肯定有人帮你搞定。 |
|
返回顶楼 | |
发表时间:2007-05-26
能不能给的全一点啊,你说的有点粗糙,对于刚接触的人,配置很难成功,希望能写的全点,我按照这个配置,不成功啊,还有要注意哪些,谢谢了!
|
|
返回顶楼 | |
发表时间:2007-05-26
这5个网站session如何共享呢?
|
|
返回顶楼 | |
发表时间:2007-05-27
jdk 6.0还是很稳定的吧,我们已经用了好几个月了。
7x24小时在线系统,千万级访问量,没因为jdk发生过什么问题 |
|
返回顶楼 | |
发表时间:2007-05-27
不明白你在应用前面放一个apache干嘛用
不同应用的请求直接访问不同的服务器不就行了 流量大的时候,一个apache是无法满足性能需求的 另外一个慢的应用就可能使所有应用不能访问 也许是我太笨,没看懂楼主的方案,呵呵 |
|
返回顶楼 | |