谈到Web服务器,大家脑海中肯定会想起Apache、Tomcat、Nginx等等;没错这些都可以作为Web服务器,一般可以将Web服务器划分为三类,一类称为Web应用服务器(又叫Web容器)主要部署动态Web应用并提供Web服务;一类称为Web服务器(或者Http服务器)主要提供静态Web资源的访问;最后一类为代理服务器,此类一般部署在Web应用服务器或者Web服务器前面提供Web资源缓存及代理功能(后续讲高性能Web架构时会涉及)。
主要的Web应用服务器及其特点如下图所示:
主要的Web服务器 、代理服务器及其特点如下图所示:
通过以上两个思维导图大家对大多数的Web服务器应该都有所了解,下面介绍我们选择Tomcat作为JavaWeb应用服务器的原因。下载的Tomcat安装包名一般为apache-tomcat-***.zip,导致很多人都称Tomcat为Apache,这是不对的,一般业界叫Apache都是指Apache httpd,Tomcat是Apache的扩展,不能将两者混为一谈;选择Tomcat原因:
1、JavaWeb需要运行在Web应用服务器上才能提供服务;
2、使用简单,资料文档丰富,能更快上手;
3、支持最新的Servlet和Jsp规范;
4、免费、开源;Apache基金会提供支持;
5、版本更新快,目前已经更新到Tomcat 9;
6、跨平台,可以运行在Windows、Linux等各种操作系统上;
7、支持负载均衡,可以与Apache、Nginx、Varnish等配合实现高性能Web服务;
Tomcat重要目录说明:
Web应用发布目录结构
Tomcat最重要的配置文件conf/server.xml,如下图所示
一般只要修改Conector中port(即修改Tomcat的服务端口);为提高Tomcat性能有时还会进行一些优化配置:
另外还会在catalina.sh参数中增加JVM调优配置,典型配置如下图(此处限于篇幅不详细阐述,后续小编会专门写一篇文章讲述JVM性能调优,对此感兴趣的同学,可以持续关注我们)
关闭控制台日志,在catalina.sh修改配置,如下图所示将CATALINA_OUT指向/dev/null即可,/dev/null的作用是丢弃一切写入其中的数据(但报告写入操作成功)。
Web应用程序运行时,Post提交中文内容时常常会出现中文乱码问题,此时需要在server.xml的Conector节点中增加URIEncoding=“UTF-8”,表示使用UTF-8对URL中的参数进行解码;
文章对Web服务器进行了归类对比,并阐述了选择Tomcat作为初学者使用的Web应用服务器的原因并简要介绍了Tomcat的目录结构,Web应用程序的目录结构以及Tomcat常用的配置。限于文章篇幅,没有对高性能Web架构,JVM性能调优进行详细阐述,后续小编会带来相关内容的文章,请大家持续关注。需要Tomcat的同学可以从Tomcat官网下载,Tomcat官网地址:http://tomcat.apache.org/