直接切入正题,关于tomcat,nginx,apache是什么请google。不建议百度。
1.传统的方式apache+tomcat
  又分为apache2.0.x+mod_jk+tomcat,
       apache2.2.x+mod_proxy+mod_ajp+mod_balance+tomcat
  使用的协议都是ajp协议,注意不是http。静态文件交给apache处理,动态的java,*.jsp *.do *.action交给tomcat处理。会话使用的session stick。apache的prefork模式实在太占内存了,对于4G以内的服务器不建议使用。
     mod_jk模式相对很成熟,mod_proxy_ajp_balance模式应该也很成熟了,毕竟apache2.2.x推出很长时间了。但是我在生产环境还没有实地跑过,主要是mod_jk的模式,当然了apache2.2.x也可以完美支持。
2. 流行的配置nginx+tomcat
   同样也是nginx来处理静态文件,动态的交给后端tomcat,但是他们之间采用的是http协议交互的。也就是说tomcat必须启用connector。会话保持有2种方式供选择,nginx的ip_hash和第三方模块nginx_upstream_jvm_route.ip_hash对于负载均衡有一定影响,第三方模块性能究竟怎么样我也不清楚。生产环境用的比较多的还是ip_hash,运行也比较稳定。nginx的低内存占用也是很有优势,linux下的网络io模型epoll更是比apache好很多。
希望对大家有所帮助。