16.4 配置Tomcat监听80端口
16.5/16.6/16.7 配置Tomcat虚拟主机
16.8 Tomcat日志
16.4 配置Tomcat监听80端口
1.编辑Tomcat配置文件
1 | [root@localhost ~]# vim /usr/local/tomcat/conf/server.xml |
/usr/local/tomcat/conf/server.xml
是Tomcat的主配置文件
搜索8080 再把port="8080"
改为"80"
即可1
2
3<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
查看监听的端口 发现80端口已经给Nginx监听了1
2
3[root@localhost ~]# netstat -lntp |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1067/nginx: master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1067/nginx: master
把Nginx服务先关闭1
2[root@localhost ~]# service nginx stop
Stopping nginx (via systemctl): [ 确定 ]
2.重启Tomcat服务
1 | [root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh |
在看看监听端口1
2
3
4[root@localhost ~]# netstat -lntp |grep java
tcp6 0 0 :::80 :::* LISTEN 2032/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2032/java
tcp6 0 0 :::8009 :::* LISTEN 2032/java
测试
使用浏览器访问192.168.80.102
因为这里是测试环境因此才停了Nginx服务 一般生产环境都会让Nginx来代理Tomcat的
16.5/16.6/16.7 配置Tomcat的虚拟主机
和之前的Apache Nginx一样,Tomcat都是支持虚拟主机的(同一台服务器上单个IP来访问多个域名) ,Tomcat的配置文件是/usr/local/tomcat/conf/server.xml
先配置配置文件1
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
找到Host的那段配置,其中<Host></Host>
之间的就是一个虚拟主机name
表示域名appBase
表示应用项目目录 一般Java的应用通常是一个war
的压缩包,只需要将war
的压缩包放到appBase
目录下面即可。说白了就是个存放Java程序压缩包的目录 Java程序可以是图片,.jsp网页等等unpackWARs
表示是否自动解压appBase目录下的war包docBase
表示网站存放的目录 一般都会存放Java的程序 图片,.jsp网页等。如果不定义docBase默认都会Java程序会存放在appBase定义的ROOT
目录下
1 | <Host name="localhost" appBase="webapps" |
下面我们在此1
2
3
4
5<Host name="www.test3.cn" appBase=""
unpackWARs= "true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/test3/" debug="0" reloadable="true" crossContext="true"/>
</Host>
appBase
是定义个有压缩包目录和docBase
定义没有压缩包的目录 ,一般appBase
和docBase
两者二选一来定义网站的目录,可以把另一个定义空,例如上面的
实例
在Tomcat中安装zrlog
程序来部署zrlog
博客。其中zrlog
是Java编写一个博客,比较小巧,非常适合做实验。当然,要搭建PHP博客可以使用workpress
步骤
1.下载war包到src目录下
1 | [root@localhost ~]# cd /usr/local/src/ |
2.复制war包到默认的appBase目录下
1 | [root@localhost src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ |
默认的appBase目录在/usr/local/tomcat/webapps/
1
2[root@localhost webapps]# ls
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
可以发现多了个zrlog的目录
3.更改zrlog目录的名字并删除war包
1 | [root@localhost webapps]# mv zrlog-1.7.1-baaecb9-release zrlog |
删除war包目的是不让他自动再生成zrlog目录1
2[root@localhost webapps]# ls
docs examples host-manager manager ROOT zrlog
这样appBase中只有一个zrlog目录了
4.在MySQL中创建zrlog用户和zrlog库
1 | [root@localhost webapps]# mysql -uroot -p38003800 ##连接MySQL |
5.使用浏览器访问192.168.80.102:8080/zrlog/ 填好数据库和用户
再填好网站信息
再访问192.168.80.102:8080/zrlog/ 就已经完成搭建博客了
当我们访问博客的时候 要输入192.168.80.102:8080/zrlog/
才可以访问,十分麻烦。我们刚刚在Tomcat的配置文件中定义了一个新的虚拟主机,其实可以让网站的程序放在定义好的docBase目录下就可以直接输入域名就可以访问网站了。
步骤
1.打开Tomcat配置文件配置新的虚拟主机
1 | <Host name="www.test3.cn" appBase="" |
这个是我刚才配置过的虚拟主机,docBase
路径是/var/www/test3/
2.新建网站程序存放的目录
1 | [root@localhost ~]# mkdir /var/www/test3 |
3.把appBase中的zrlog目录内容移动到docBase目录下
1 | [root@localhost webapps]# mv /usr/local/tomcat/webapps/zrlog/* /var/www/test3/ |
4.重启Tomcat服务
1 | [root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh |
测试
使用浏览器访问
先在HOSTS上写好域名解析
在到浏览器访问www.test3.cn:8080
,把端口改为80可以不需要输入8080
总结
appBase
目录是存放war
包的目录 可以自动解压war
它的路径是/usr/local/tomcat/webapps
一般在新建的虚拟主机下的appBase下应该有ROOT
目录用来存放网站的程序,前提是没有定义docBase
目录docBase
目录存放网站程序的目录
16.8 Tomcat日志
Tomcat的日志都存放在/usr/local/tomcat/logs/
目录下,分为四类日志1
2
3
4
5[root@localhost ~]# ls /usr/local/tomcat/logs/
catalina.2018-06-25.log host-manager.2018-06-27.log localhost_access_log.2018-06-27.txt
catalina.2018-06-26.log localhost.2018-06-25.log manager.2018-06-25.log
catalina.2018-06-27.log localhost.2018-06-26.log manager.2018-06-26.log
catalina.out localhost.2018-06-27.log manager.2018-06-27.log
1.catalina
开头的日志是Tomcat的综合日志,记录Tomcat的所有信息 catalina.out
是总日志 而 catalina.日期.log
是当日的综合日志,每日自动长生。
2.host-manager
和manager
为管理相关的日志,其中host-manager
为虚拟主机的管理日志 他们也会每天生成新的
3.localhost
和localhost_access
为虚拟主机相关日志,其中带access
字样的日志为访问日志,不带access
字样的为默认虚拟主机的错误日志。 访问日志默认不会生成,需要在server.xml中<Valve>
配置一下1
2
3<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
directory
定义日志路径 prefix
定义访问日志的前缀,suffix
定义日志的后缀,pattern
定义日志格式。
一般新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。
因此关于Tomcat日志,你最需要关注catalina.out
,当出现问题时,我们应该第一想到去查看它。