Skip to content

Commit b4e0a9b

Browse files
committed
Tomcat 使用总结
1 parent 8fc8c1f commit b4e0a9b

1 file changed

Lines changed: 177 additions & 0 deletions

File tree

docs/develop/web-base-02.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: Web笔记(二)Tomcat 使用总结
3+
date: 2018-08-23 09:12:31
4+
url: develop/web/web/base-02
5+
updated: 2018-08-23 09:12:31
6+
categories:
7+
- Java EE
8+
tags:
9+
- Tomcat
10+
- Java EE
11+
---
12+
13+
![](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/84e22fa4d78bc3eb8ed5109a0beb21f8.jpg)
14+
### Tomcat 介绍
15+
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。(摘录自[Wiki](https://zh.wikipedia.org/wiki/Apache_Tomcat))([Apache Tomcat](http://tomcat.apache.org/))
16+
<!-- more -->
17+
18+
### Tomcat 安装
19+
Tomcat是免费的开源软件,可在直接在官方网站下载。
20+
[http://tomcat.apache.org/](http://tomcat.apache.org/)
21+
1.可以直接在左侧选择版本:
22+
23+
![enter image description here](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/ae2daaf8a3849968ec40589cdcc54f4b.jpg)
24+
25+
2.选择版本后可以在下方进行下载,可以选择下载安装版或者解压版,这里选择了解压版
26+
tar.gz文件是Linux操作系统下的安装版本
27+
exe文件是Windows系统下的安装版本
28+
zip文件是Windows系统下的压缩版本
29+
30+
![enter image description here](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/5479a7ba9d098838d3e0fee1d2f05877.jpg)
31+
32+
3.下载完成后解压缩,得到Tomcat目录,
33+
34+
![Tomca目录](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/869cfe4d5dc8a32e1e1b7f7723587a53.jpg)
35+
36+
### Tomcat 的默认端口
37+
38+
Tomcat 修改HTTP默认端口,可以直接修改Tomcat 目录下\conf \server.xml文件。默认端口号为8080,修改为想要的端口,重启Tomcat即可。
39+
```xml
40+
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
41+
```
42+
若要修改成8081端口:
43+
```xml
44+
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>
45+
```
46+
### Tomcat 的虚拟目录配置
47+
什么是虚拟目录呢,简单的说,我们可以根据请求的路径不同,来发布不同的项目。如此形式:我们想要
48+
在访问http://www.codingme.net/testA 时,进入A项目。
49+
在访问http://www.codingme.net/testB 时,进入B项目。
50+
这个时候我们就需要配置虚拟目录来完成这个操作。
51+
此时的URL:http://www.codingme.net/testA 不是单纯的路径,而是协议域名端口号+WEB应用testA。
52+
#### 自动映射虚拟目录
53+
在Tomcat 默认情况下,我们可以看到 %Tomca%\conf \server.xml文件最底部有配置如下:
54+
55+
```xml
56+
<Host name="localhost" appBase="webapps"
57+
unpackWARs="true" autoDeploy="true">
58+
<!-- SingleSignOn valve, share authentication between web applications
59+
Documentation at: /docs/config/valve.html -->
60+
<!--
61+
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
62+
-->
63+
<!-- Access log processes all example.
64+
Documentation at: /docs/config/valve.html
65+
Note: The pattern used is equivalent to using pattern="common" -->
66+
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
67+
prefix="localhost_access_log" suffix=".txt"
68+
pattern="%h %l %u %t "%r" %s %b" />
69+
</Host>
70+
```
71+
这里Tomcat 默认配置了虚拟主机localhost,基础应用目录webapps,也就是%Tomca%\webapps\ 目录,Tomcat 服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。
72+
因此在需要配置虚拟目录时我们可以直接把项目复制到webapps 目录下进行发布
73+
示例:
74+
1. 复制项目到webapps下
75+
76+
![复制项目到webapps](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/73a4fd3da0339281189dd33b0b417eba.jpg)
77+
2. 查看test/ index.html 文件内容
78+
![Index内容](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/f9501721ef675ded41268e0080ef05bc.jpg)
79+
3. 运行%Tomcat%/bin/startup.bat 启动Tomcat
80+
4. 进行访问测试http://localhost:8080/test/index.html
81+
82+
![访问测试](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/b6b0c70169fe8297bec33d9f51980a72.jpg)
83+
84+
注意:http://localhost:8080 会默认访问 webapps/ROOT文件夹中的内容。
85+
86+
#### 修改server.xml 映射虚拟目录
87+
88+
我们也可以通过在server.xml 文件中的host 元素之间添加配置代码来配置虚拟目录:添加代码如下;
89+
90+
```xml
91+
Context path="/app" docBase="D:/app" debug="0" reloadable="true" crossContext="true"/>
92+
```
93+
94+
![](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/6a0ecaf86e878e286eb489d0b5b673d2.jpg)
95+
96+
配置中我们配置了访问路径为/app ,项目路径D:/app 因此我们只要把要发布的内容放入D:/app 文件夹中即可。
97+
配置完毕后 运行%Tomcat%/bin/startup.bat 启动Tomcat,可以通过
98+
> http://localhost:8080/app/index.html
99+
100+
访问到D:/app/index.html,需要多个虚拟目录可以直接配置多条配置。
101+
102+
注意:若想使用http://localhost:8080 访问项目则需要配置 `path=""`
103+
注意:配置中的path值和docBase中的文件夹名称没有任何关系。
104+
105+
#### 在conf /Catalina /localhost 增加xml文件映射虚拟目录
106+
107+
博主比较推荐这一种。
108+
在%Tomcat%/conf/Catalina/localhost目录中,增加配置文件来配置虚拟目录。
109+
配置文件名称格式为:虚拟目录路径.xml
110+
举个栗子:
111+
在%Tomcat%/conf/Catalina/localhost目录中增加文件 `blog.xml`
112+
写入内容:
113+
114+
```xml
115+
<?xml version="1.0" encoding="utf-8"?>
116+
<Context
117+
docBase="d:/blog"
118+
reloadable="true">
119+
</Context>
120+
```
121+
![Tomcat-localhost](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/1a56a5580ae151d1b7201e11fd04bed8.jpg)
122+
123+
D盘下blog文件夹中内容:
124+
125+
![](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/ab3ac58378336d818a7386d18e887eab.jpg)
126+
127+
`docBase="d:/blog" ` 指定了Web应用存放位置为D盘下blog文件夹中。
128+
`reloadable="true" `表示当blog文件夹中文件有变化中,自动加载。
129+
配置完毕启动Tomcat后就可以通过访问到blog文件夹中的内容。
130+
131+
> http://localhost:8080/blog
132+
133+
![](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/5ca799c38a020dbd5ae476420537d3bc.jpg)
134+
135+
注意:需要多个虚拟目录可以多建立几个配置文件,文件名不能相同。
136+
注意:若想使用http://localhost:8080 访问项目则需要配置文件名为`ROOT.xml`
137+
注意:文件名blog.xml 和配置中d:/blog 没有关系,文件名可以写成其他,如blog111.xml,那么在访问时就要访问http://localhost:8080/blog111
138+
139+
### Tomcat 的虚拟主机
140+
141+
首先我们先了解虚拟主机的用处,一个虚拟主机也就是一个网站。比如我们`只有一个服务器`,一个服务器上只有一个80端口,我们需要发布两个web项目,那么我们可以使用虚拟目录,把两个项目发布到两个不同的路径之下,但是如果我们有两个不同的域名需要把两个项目对应两个域名,我们就需要配置虚拟主机了。
142+
143+
示例:两个域名
144+
一个是`www.aaaa.com`
145+
一个是 `www.bbbb.com`
146+
147+
为了实验效果,我们配置C:\Windows\System32\drivers\etc\hosts 文件,添加两行映射。
148+
```
149+
127.0.0.1 www.aaaa.com
150+
127.0.0.1 www.bbbb.com
151+
```
152+
此时我们本机可以使用 localhost / www.aaaa.com / www.bbbb.com 进行访问。
153+
154+
配置虚拟主机指定www.aaaa.com访问是的内容。
155+
1:在server.xml中Engine元素中添加一个host子元素
156+
```xml
157+
<Host name="www.aaaa.com" debug="0" appBase="d:/aaaa" unpackWARs="true"
158+
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
159+
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
160+
prefix="aaaa_log." suffix=".txt" timestamp="true" />
161+
</Host>
162+
```
163+
其中的
164+
1. name表示在访问的域名是www.aaaa.com时会使用此配置。
165+
1. appBase="d:/aaaa" 指定了项目的发布路径。
166+
167+
启动Tomcat后,此时在使用www.aaaa.com进行访问时候,会默认显示d:/aaaa/ROOT中的内容。
168+
169+
![](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/c437877b962ffd9aac1f3beb2b9c074c.gif)
170+
171+
如果存在 d:/aaaa/test,则可以通过http://www.aaaa.com:8080/test 进行访问。
172+
此时test也就是www.aaaa.com的虚拟目录。
173+
添加www.bbbb.com 访问同上。
174+
175+
### Tomcat 的单例多实例配置
176+
参考之前文章
177+
[Linux配置Tomcat的单机多实例](https://www.wdbyte.com/2018/08/develop/install-tomcat-many-instance/)

0 commit comments

Comments
 (0)