环境准备
java环境JRE和JDK的区别:
jre是Java的运行环境,包含jvm
jdk是Java的开发环境,会包含Java的运行环境jre
如果说单纯的运行Java代码,只需要jre足够,但如果需要提供开发环境以及运行环境则需要JDK
JDK--->jre--->jvm

Tomcat:
Tomcat和Nginx类似,都是web服务器软件只不过tomcat是基于Java开发的web服务器。主要解析Java代码。
Nginx仅支持静态资源解析,而Tomcat支持解析Java开发的web应用,还支持解析静态资源(效率不高)
Nginx适合做前端负载均衡,Tomcat适合做后端应用服务处理。
通常情况下企业使用Nginx+Tomcat结合,Nginx处理静态资源,Tomcat处理动态资源
Tomcat快速安装
安装JDK
yum install java -y
或者上传rpm包
rpm -ivh jdk....rpm
查看是否安装成功
[root@web01 ~]
jdk1.8-1.8.0_181-fcs.x86_64
安装Tomcat
下载Tomcat
[root@web01 soft]
[root@web01 soft]
[root@web01 soft]
[root@web01 soft]
[root@web01 soft]
[root@web01 soft]
total 0
drwxr-xr-x 9 root root 220 May 10 16:13 apache-tomcat-9.0.89
lrwxrwxrwx 1 root root 27 May 10 16:14 tomcat -> /soft/apache-tomcat-9.0.89/
[root@web01 soft]
Using CATALINA_BASE: /soft/tomcat
Using CATALINA_HOME: /soft/tomcat
Using CATALINA_TMPDIR: /soft/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /soft/tomcat/bin/bootstrap.jar:/soft/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@web01 soft]
服务端口8080
[root@web01 soft]
total 132
drwxr-x--- 2 root root 4096 May 10 16:13 bin
-rw-r----- 1 root root 20913 May 4 04:22 BUILDING.txt
drwx------ 2 root root 238 May 4 04:22 conf
-rw-r----- 1 root root 6210 May 4 04:22 CONTRIBUTING.md
drwxr-x--- 2 root root 4096 May 10 16:13 lib
-rw-r----- 1 root root 57092 May 4 04:22 LICENSE
drwxr-x--- 2 root root 6 May 4 04:22 logs
-rw-r----- 1 root root 2333 May 4 04:22 NOTICE
-rw-r----- 1 root root 3283 May 4 04:22 README.md
-rw-r----- 1 root root 6901 May 4 04:22 RELEASE-NOTES
-rw-r----- 1 root root 16505 May 4 04:22 RUNNING.txt
drwxr-x--- 2 root root 30 May 10 16:13 temp
drwxr-x--- 7 root root 81 May 4 04:22 webapps
drwxr-x--- 2 root root 6 May 4 04:22 work
配置systemc方式启动Tomcat
[root@web01 soft]
> [Unit]
> Description=Apache Tomcat Server
> After=network.target remote-fs.target nss-lookup.target
> [Service]
> Type=forking
> ExecStart=/soft/tomcat/bin/startup.sh
> ExecStop=/soft/tomcat/bin/shutdown.sh
> ExecRetart=/soft/tomcat/bin/shutdown.sh && sleep2 && /soft/tomcat/bin/startup.sh
> [Install]
> WantedBy=multi-user.target
> EOF
[root@web01 soft]
[Unit]
Description=Apache Tomcat Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/soft/tomcat/bin/startup.sh
ExecStop=/soft/tomcat/bin/shutdown.sh
ExecRestart=/soft/tomcat/bin/shutdown.sh && sleep2 && /soft/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
[root@web01 soft]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
配置文件
tomcat软件目录结构:
bin ---主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
conf ---tomcat配置文件的目录(站点配置:server.xml)
lib ---tomcat运行时需要加载的jar包
logs ---tomcat日志存放位置
temp ---tomcat临时存放文件路径
webapps ---tomcat默认站点目录
work ---tomcat运行时产生的缓存文件
conf/server.xml主配置文件
[root@web01 conf]
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<!--监听器-->
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!--全局资源限制-->
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<!--连接器-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
<!--引擎-->
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<!--虚拟主机-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
Tomcat请求过程

配置虚拟机主机
cat /soft/tomcat/conf/server.xml
...
<Host name="diy.etiantian.org" appBase="/code/tomcat"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="etiantian" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
[root@web01 conf]
[root@web01 conf]
[root@web01 conf]
配置Windows hosts劫持
访问:
http://diy.etiantian.org:8080/index.html
搭建zrlog博客
<Host name="zrlog.oldboy.com" appBase="/code/zrlog"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="zrlog" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
[root@web01 conf]