什么时候只用tomcat又什么时候用apache或是都用呢?
因为tomcat是java 的WEB容器 , 其致力于解决servlet, jsp 等等java中的标准以及运行环境。
apache httpd (包括lighthttpd 等)致力于提供一个 www (http)服务的支撑运行环境。
www服务 和 web container 的重点是完全不一样的,虽然他们都内置有http协议的支撑。
其中使用tomcat功能而不使用 apache httpd的理由: jsp不能在apache httpd中运行。
使用apache httpd的功能而不使用tomcat的理由:(我最常用到的)a. url rewrite, b. 定制的访问日志记录,c. 反向http代理,d. 报错处理。apache httpd是一个稳定的程序(相对你开发刚刚开发完的java应用),因此我用apache做最外层的报错管理,尽量保证服务无法正常运行的时候,也给用 户一个友善的错误,也将我们的联系方法告诉用户。 e. load balance 负载均衡 f. 文件目录浏览/文件下载 (你的java程序支持断点续传么?写一下至少要一两天的工作量) g. 基于IP地址范围的权限控制 h. 基于URL的访问限制配置(结合IP地址的权限控制) i. 静态文件服务,分域名的缓存。 j. 对支持压缩的客户端提供压缩 js, css, html服务 k. 基于主机名称的虚拟服务器