12月13日任务
16.4 配置Tomcat监听80端口
16.5/16.6/16.7 配置Tomcat虚拟主机
16.8 Tomcat日志
配置tomcat监听80端口
默认tomcat监听的是8080端口,如果想直接输入ip就访问到网页,就需要进行如下操作:
- 修改配置文件
[root@localhost src]# vim /usr/local/tomcat/conf/server.xml /定位到8080修改8080为80,保存退出
- 重启服务
# 先关闭后启动[root@localhost src]# /usr/local/tomcat/bin/shutdown.sh [root@localhost src]# /usr/local/tomcat/bin/startup.sh
- 验证是否生效
[root@localhost src]# netstat -lntp | grep javatcp6 0 0 :::80 :::* LISTEN 2823/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2751/java tcp6 0 0 :::8009 :::* LISTEN 2751/java
如果系统内已经安装并启动了apache/nginx web服务,80端已被占用,需要关闭这些web服务器,然后重启tomcat服务。
Tomcat虚拟主机
跟apache/nginx web服务器一样,tomcat也可以设置虚拟主机。
在tomcat配置文件中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。
[root@localhost src]# vim /usr/local/tomcat/conf/server.xml // 在下添加下列代码# 部分参数说明:# name:需要填写的是虚拟主机的域名# appBase:应用项目(WAR包)所在目录,配合unpackWARs将自动解压WAR包成一个程序目录# WAR包:开发人员开发的组建网站的各种网页、配置、jsp代码、数据库相关文件会被打包成一个WAR包,便于存放和传输。# unpackWARs: 自动解压WAR包# docBase:在该处定义的目录内存放的是解压后的WAR包的文件,定义了该项后,以该目录为主,appBase可以不需要定义,也可以定义成一样;如果不定义,默认文件存放在appBase/ROOT下,两者取其以即可。如果docBase没有定义正确,任意产生404错误。
appBase和docBase
appBase内写的是相对路径,其相对的是/usr/local/tomcat/
使用WAR包的时候需要写appBase,同时unpackWARs需要设置成“True”,否则无法自动解压。
如果提供的网站是一个目录,那些所涉及的所有文件就放在docBase参数所指定的目录下。
webapps目录下的ROOT目录
[root@localhost webapps]# ls ROOT/asf-logo-wide.svg bg-upper.png tomcat.gifbg-button.png favicon.ico tomcat.pngbg-middle.png index.jsp tomcat-power.gifbg-nav-item.png RELEASE-NOTES.txt tomcat.svgbg-nav.png tomcat.css WEB-INF
可以直接通过localhost/index.jsp
/ localhost/bg-nav.png
的方式进行访问,即默认访问的是ROOT目录
自己定义的程序目录也需要创建一个ROOT目录,同时把图片、静态文件放在ROOT目录下,这样就可以直接访问自定义网站了。
虚拟主机实例 --- zrlog博客的搭建
搭建好tomcat环境后,我们可以搭建一个简单的blog应用网站来体验下。
- 下载zrlog的WAR包
[root@localhost src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war[root@localhost src]# du -sh zrlog-1.7.1-baaecb9-release.war 6.8M zrlog-1.7.1-baaecb9-release.war
- 移动至tomcat目录下的webapps目录内
[root@localhost src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/# 改名的目的是为了访问的方便,毕竟包名有点长[root@localhost webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
- 创建相关数据库及用户
# 前提是系统内有mysql并启动[root@localhost webapps]# ps aux | grep mysql# 登录mysql,去创建zrlog用户[root@localhost webapps]# mysql -uroot -pEnter password: # 创建数据库zrlogmysql> create database zrlog;Query OK, 1 row affected (0.03 sec)# 创建新用户zrlog,并赋予其权限mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'zrlog';Query OK, 0 rows affected (0.04 sec)mysql> quitBye# 使用zrlog用户登录测试[root@localhost webapps]# mysql -uzrlog -h127.0.0.1 -pEnter password: mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || test || zrlog |+--------------------+3 rows in set (0.03 sec)mysql> quitBye
-
使用浏览器登录注册
- 输入刚创建的zrlog用户及其密码,邮箱随意
- 设置管理员密码,自定义网站标签及子标题
- 完成注册
- 博客效果图
注册成功后使用admin账户就可以登录博客自由的编辑、发布blog了!
Tomcat日志
[root@localhost tomcat]# ls /usr/local/tomcat/logs/
tomcat的日志分为4类:
- catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。tomcat会每天生成一个新的日志catalina.YYYY-mm-dd.log。catalina.out内容相同
- host-manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。日志内容可能为空
- manager也是管理相关的日志,与host-manager类似
- localhost开头的为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志
访问日志默认不生成,需要在server.xml内定义
# directory定义日志存放的目录,这里是/usr/local/tomcat/logs目录# prefix定义访问日志的前缀# suffix定义日志的后缀# pattern定义日志格式。
新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志信息会统一记录到catalina.out中。因此当出现问题时,应该第一时间去查看catalina.out文件。