一、Web服务器概念
Web服务器是一个应用程序,主要作用是响应浏览器的请求,并把处理结果发回浏览器。
Tomcat是一个免费的Web服务器。Tomcat支持JSP和Servlet规范。WebLogic(BEA公司)、WebSphere(IBM)是商用Web服务器,支持J2EE规范。
常用端口:http(80),smtp(25),pop3(110),ftp(23),https(443)。
二、Tomcat体系结构
Tomcat服务器本身在conf/server.xml文件中配置。在server.xml配置文件中可更改服务器侦听端口,增加主机(网站),配置主机下Web应用的虚拟目录映射等。server.xml配置文件更改后,需要重启服务器。Tomcat体系结构如下图所示:
说明:Tomcat启动程序按照server.xml中的配置启动服务器的各个组成部分。Tomcat的Service服务包括响应浏览器请求的连接器和处理请求的引擎,每个连接器都运行在不同的端口上。Tomcat服务器处理请求的过程:当连接器接收到浏览器的请求后,连接器会把请求发送给Service引擎处理。Service引擎解析求情后,引擎会把请求传递给对应的Host主机处理。某个Host主机接收到请求,Host主机会把请求传递给主机下某个Web应用最终处理请求。
三、配置虚拟主机
一台接入网络的计算机可以安装多台服务器,而每台服务器上也可以运行多个主机(网站)。Tomcat服务器的主机在server.xml中配置。默认情况下Tomcat只有一个localhost主机,localhost代表的IP地址为:127.0.0.1。在浏览器中输入
http://localhost
:8080/ 即表示浏览器访问本机的8080端口。
1. 增加主机方法
server.xml文件里,在Engine标签的内容部分增加一个Host标签即可在服务器上增加一台主机(网站)。
2. Host标签说明
<Host name="www.liyin.com" appBase="E:/myWebApps">
(可在此配置此主机下的Web应用)
</Host>
name:该主机的主机名,代表网络中的一个IP地址,通过这个IP地址可以访问网络中的主机。实际中该主机名必须在DNS服务器中注册才能使用,开发时修改Windows的hosts文件,使
www.liyin.com代表的IP地址为:
127.0.0.1。
appBase:该主机所使用的计算机上的物理文件夹路径,相当于localhost主机所使用的Tomcat安装目录下的webapps文件夹。该文件夹内部存放Web应用程序。
四、配置Web应用程序虚拟目录映射
本部分以“
www.liyin.com
”
(
修改Windows的hosts文件,使
www.liyin.com代表的IP地址为:
127.0.0.1
)
主机为例
,所有的Web应用均配置在该主机下,其它主机的配置方法类似。
1. 方法一:在server.xml中配置
在Host标签内部增加一个Context标签即可为此主机增加一个Web应用程序。
<Host name="www.liyin.com" appBase="E:/myWebApps">
<Context path="/mail" docBase="D:/WebPrograme/LiyinMail" />
</Host>
path:映射到
www.liyin.com主机下的
虚拟路径。通过 http://
www.liyin.com:8080/mail/ 网址即可访问
D:/WebPrograme/LiyinMail
应用程序。
docBase:Web应用程序在硬盘上的实际路径。
缺点:
需要重新启动服务器,配置才能生效。
2. 方法二:在conf/Catalina文件夹下配置
只要在
server.xml配置一台虚拟主机,Tomcat服务器就会自动在
conf/Catalina文件下生成一个以该主机名命名的文件夹。此时服务器中有两台虚拟主机:
localhost和
www.liyin.com,则在
conf/Catalina下存在localhost文件夹和
www.liyin.com文件夹。
方法:以
www.liyin.com主机为例,在
conf/Catalina/
www.liyin.com下创建一个XML文件(文件名:mail
.xml,
mail
.xml文件内容:<Context docBase="
D:/WebPrograme/LiyinMail
">),
就可以为此主机配置一个Web应用程序。
XML文件的文件名是
映射到
www.liyin.com主机下的
虚拟路径;
docBase为
Web应用程序在硬盘上的实际路径。此刻,
通过 http://
www.liyin.com
:8080
/mail/ 网址即可访问
D:/WebPrograme/LiyinMail
应用程序。
多级映射路径:如果XML文件命名为a#b#mail.xml(内容不变),则必须通过
http://
www.liyin.com
:8080
/a/b/mail网址才能访问
D:/WebPrograme/LiyinMail
应用程序。
优点:不需要重启服务器,配置的信息就可以生效。
3. 在
appBase中配置
Tomcat服务器会自动管理每个主机
appBase路径下的所有Web应用程序,并且把它们映射成虚拟目录,Web应用程序的名字即为此主机虚拟路径。例如:将
D:/WebPrograme/LiyinMail应用直接拷贝到
E:/myWebApps目录下,通过
http://
www.liyin.com
:8080
/LiyinMail 网址就可以访问此应用程序。
五、Web应用的组成结构
注:web.xml文件是整个Web应用中最核心的文件,对Web资源的配置全在此文件中配置。
六、缺省配置
1. 给Web应用配置默认主页
在WEB-INF/web.xml文件welcome-file-list标签下添加一个welcome-file标签配置此应用的默认主页。
web.xml例如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
注:没给应用程序配置默认主页前,访问到此应用程序后还需要指定访问哪个文件,即
http://
www.liyin.com
:8080
/mail/index.html才是有效的网址;配置默认主页后,直接访问此应用不指定访问哪个文件则访问默认的主页。
2. 给主机配置默认的Web应用
方法一:
server.xml中配置虚拟目录映射时将Context的path属性设置为""(空)。
方法二:在
conf/Catalina/(主机名)/下创建一个ROOT.xml配置虚拟目录映射。
注:给主机配置默认Web应用后,通过访问主机名不指定访问哪个Web应用则访问默认的Web应用。如果给
www.liyin.com主机配置一个默认的Web应用Welcome,访问
http://
www.liyin.com
:8080
/即默认访问Welcome应用。
3. 配置http默认访问端口
http默认访问主机的80端口,做开发时使用的端口是8080。如果将Connector标签的port属性改为80,则网址主机名后不需要在用冒号指定访问哪个端口默认访问80端口,例如:
http://
www.liyin.com
/。
注:同时配置80端口、主机的默认Web应用和Web应用的默认主页,网址直接指定访问哪个主机就可以访问此主机上默认的Web应用的默认主页。
七、配置https加密连接器
https默认的端口号为:443,做开发时tomcat服务器https端口号为:8443。配置加密连接器后,通过https访问的网站内容是一样的,只是通过SSL加密的方式传输内容。配置
https加密连接器步骤如下:
1.
使用Java自带的工具生成密钥库
在cmd命令行输入
keytool -genkey -alias tomcat -keyalg RSA启动该工具。
输入密钥库的密码和姓名(必填,即为某个具体的网站生成的密钥,如:www.liyin.com)和其它一些信息就可以生成一个密钥库(.keystore文件)。将生成的密钥库移到conf文件夹下。
2. 配置
加密连接器
在server.xml文件service标签中添加一个Connector标签:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" keystorePass="123456" />
keystoreFile:密钥库的物理路径。
keystorePass:密钥库的密码(生成密钥库的时候设置)。
server.xml配置完成后,重启服务器,加密连接器配置完成。
3. 通过https加密方式访问网站
注意:前面是https,而不是http;开发时端口是8443,而不是8080。
八、Tomcat管理平台
默认情况下,tomcat管理平台的用户被注释了。如果想使用
Tomcat管理平台只需要在conf/tomcat-user.xml配置一下用户即可。
Tomcat8.0.3配置如下:
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>