1、Apache:使用最广泛的web服务器,跨平台性和安全性好
2、Tomcat:一个免费的开源的Web 应用服务器(主要用于解析servlet/JSP,同时具备http服务),运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web 应用服务器。
3、一般会有Apache+Tomcat+JDK一起来做后台服务器,主要处理PHP以及一些功能请求,如中文URL,其中Apache作为web服务器,主要用于转发处理静态页面,tomcat作为java应用服务器,处理动态页面,因为JSP需要连接数据库的话就要jdk来提供连接数据库的驱程。
4、nignx服务器:轻量级http服务器,以事件驱动的方式编写,高性能反向代理器和负载均衡,不支持CGI,必须用fastcgi来执行PHP程序,模块化结构,性能优化,稳定性好,其拥有匹配Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题
一般用来做前端服务器(利用它占用系统资源少的优势来处理静态页面的大量请求)
5、FastCGI的优点:(1)以独立的进程池来运行CGI,单独一个进程死掉,系统可以很轻易的丢弃再分配(2)fastCGI和server分开
6、jetty:单纯的Tomcat性能有限,在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等。除了性能问题,Tomcat的另一大缺点是它是一个受限的集成平台,仅能运行Java应用程序。Jetty通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足,都作为jboss的集成的web容器(有tomcat版的jboss、也有jetty版的jboss,即4.0以后的版本)
7、Lighttpd 一般作为图片服务器
8、服务器开发常见问题:
(1)多线程与并发:a.多线程+显示锁 b.多线程+任务队列
多线程的稳定性和分布式不行,因此多进程优点体现了:分布式,解耦,模块化
(2)异步消息/接口调用:分布式技术(a.类RPC,webserviceRPC、ICE远程同步调用;b.全异步消息——》单元测试存在问题)
(3)消息的序列化与Reflection:struct、json、protobuff
(4)性能优化:profilter、cpurofilter、callgrind
(5)单元测试