jacklondon的专栏

jacklondon的专栏

用户操作
[即时聊天] [发私信] [加为好友]
jacklondon ChenID:jacklondon
48145次访问,排名2277好友4人,关注者9
从事技术工作超过十年的老妖精。
开源 J2EE 框架 VelocityWeb 的发起人。
如来佛的兄弟。
http://blog.csdn.net/jacklondon
http://velocityweb.sourceforge.net
http://jacklondon.javaeye.com
jacklondon的文章
原创 37 篇
翻译 0 篇
转载 1 篇
评论 192 篇
jacklondon的公告
从事技术工作超过十年的老妖精。 开源 J2EE 框架 VelocityWeb 的发起人。 如来佛的兄弟。 http://blog.csdn.net/jacklondon http://velocityweb.sourceforge.net http://jacklondon.javaeye.com
最近评论
smartcarnew:异常处理确实是一个需要深思的问题,不过在C++中重要的是要明确的规范和处理,异常对于错误处理情况已经有了很多好处,而对于例子中说的资源泄漏情况已经有了成熟的程序设计方式来处理,比如用类或一些智能指针来管理。
friendShingle:说句公道话,我感觉这个分析比较客观,至少人家以数据说话。 不过楼主没有分析 compiler 在 1.5 突然增加的原因,我估计是因为加入了范型编程。从03年到现在我从事了多年的Swing开发,感觉Swing的Bug很多,特别是 1.4 有时我都很恼火,不过基于不影响使用,而且在Windows下Bug很少,在其它平台中Bug多一些。在03年以前我做过三年的Delpi/VC等的开发,我感觉Sw……
killme2008:无话可说,比较汗
killme2008:无话可说,比较汗
jacklondon:to gtlang78,
你说的也有道理。我正在写另外一篇文章,分析 JDK 各个部分的 bug rate(不知道中文应该怎么翻译,实际意思是每千行纯代码中包含的 bug 数量)。这样比较就更有意义了。
我个人的看法,JDK 的 GUI 代码质量不可能会很好。整个 JDK 中,Sun 与别人合作开发的好像只有 Swing。在 Swing 之前,Sun 独立开发的 AWT……
文章分类
收藏
    相册
    文章图片
    软件技术大全
    codeproject
    sourceforge
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 使用Apache 反向代理功能连接 Tomcat收藏

    新一篇: Anders Hejlsberg 谈C#设计过程 | 旧一篇: 解决一个 Websphere 上导致 JVM 崩溃的 bug

        Apache HTTP server 和 Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的角色。访问 Tomcat 的 HTTP 请求,通过 Apache 转发给 Tomcat,Tomcat 处理完后,将 HTTP 回应返回给 Apache,然后 Apache  HTTP 回应发回给用户端浏览器。

    Apache HTTP server 和 Tomcat server 直接的 HTTP 数据传输,有很多种方法。

    方法一,使用 mod_jk。很多网站上介绍到 Apache HTTP server 和 Tomcat server 整合的时候,都是在介绍  mod_jk.so 的使用,这是一种比较老的方法,并且需要额外下载 mod_jk。Apache 和 Tomcat 的默认配置文件都需要改动。

    方法二, URL rewrite,也就是对于指定格式的 URL,转发给某个 Tomcat 的网址。这里所说的指定格式,是指 Apache 所使用的正则表达式,通俗地将,是一种类似 * 的一种比较高级通配符。这种方法不需要下在额外的文件,只需要配置 Apache。

    方法三,mod_proxy_ajp,仅在 Apache 2.1 及以后的版本中可用,Apache 自带的一个新功能模块。这时 Apache 使用 Apache JServ Protocol 与 Tomcat 通讯。不需要下在额外的文件,需要改动Apache 和 Tomcat 的默认配置文件都需要改动。

    方法四,mod_proxy。其实 mod_proxy 既可以做类似于 Wingate 一样的公司局域网共享上网代理,也可以做反向代理(Reverse proxy)。这里使用的是反向代理功能,用户端浏览器不需要把代理服务器改成这里的 Apache 地址。mod_proxy 是 Apache 自带功能,并且配置比较简单。

    这篇文章介绍 Apache 反向代理转发 HTTP 请求到 Tomcat 的配置。比较简单实用。

    下载 Apache web server  2.2,安装完成后,修改安装目录下的 conf/httpd.conf 文件,将以下两行前的注释字符 # 去掉。

    #LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_http_module modules/mod_proxy_http.so

    在这个配置文件最后,加上

    ProxyPass                  /app1 http://<tomcat_server_address>:port/url1

    ProxyPassReverse  /app1 http://<tomcat_server_address>:port/url1

    保存配置文件后重新启动 Apache 就可以了。当用户访问

    http://<apache_server_address>/app1 的时候,Apache 后台自动将请求转发给 Tomcat ,用户只认为 Apache server 就是他所要的应用服务器。

    细心的作者可以看到,Tomcat 那边没有做任何改动,是不是说明,如果 Tomcat 换成 JBoss,或者 IBM Websphere,或者 BEA Weblogic ,也可以用 Apache 来转发呢?答案是,确实如此!!

    这里需要解释的是, Apache 反向代理只做 HTTP 透明转发,因此,Tomcat 那边,如果使用 servelet API 获取 request url, server info,等等,都是 Tomcat 的。在Tomcat 上的 JSP 或者 HTML 文件里面,都应该是相对路径,不应该使用绝对路径,更不能使用带 Tomcat 地址的 URL。这应该不是太高的要求,对不?

    目前最新版的 Apache 自带的 cache ,只能配置成 server 或者 virtual host 一级的,没有办法配置到 URL 一级。好在一般的 J2EE 应用性能问题,一般都在动态网页部分,静态网页很好,因此也没有太大关系。

    对于要求比较高的应用,比如用户量多的新闻网站或者论坛网站,如果要求是用 Apache 缓冲后台的动态网页,比如说,我的首页可以允许缓存一分钟,则在这一分钟内,比如有两千次用户访问 http://somehost/index.jsp,只有第一次用户访问,Apache 会把请求转发到 Tomcat,其余的 999 次访问,都是由 Apache 从缓冲中取出这个页面返回给用户看。这样后台的动态网页服务器的负荷会小很多。以目前的 Apache 最新版本来说,使用反向代理达不到这个要求,应该使用 Apaceh 新建一个 virtual host ,换成使用 URL rewrite。这与题目无关,就此打住。

    发表于 @ 2006年09月08日 14:56:00|评论(loading...)|编辑

    新一篇: Anders Hejlsberg 谈C#设计过程 | 旧一篇: 解决一个 Websphere 上导致 JVM 崩溃的 bug

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © jacklondon