十四周五次课(3月30日)

16.4 配置Tomcat监听80端口

16.5/16.6/16.7 配置Tomcat虚拟主机

16.8 Tomcat日志

16.4 配置Tomcat监听80端口

在生产环境中,tomcat会使用8080端口,而80端口是留给nginx,如果需要使用80端口,那要先停止nginx服务才能使用80端口。

编辑vim /usr/local/tomcat/conf/server.xml

Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"

16.5/16.6/16.7 配置Tomcat虚拟主机

编辑vim /usr/local/tomcat/conf/server.xml

其中<Host>和</Host>之间的配置为虚拟主机配置部分

name="localhost":定义虚拟主机域名

appBase="webapps":定义虚拟主机的应用目录,默认为webapps。Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase定义的目录下面即可。刚刚访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。

unpackWARs="true":定义是否自动解压;true:放到appBase定义的目录下自动解压,通过解压后的文件结构运行该Web应用;false,直接使用WAR文件运行Web应用

autoDeploy="true":表示如果有新的WEB应用放入appBase并且Tomcat在运行的情况下,自动载入应用。

增加一个新的host

<Host name="www.123.cn" appBase=""

     unpackWARs= "true" autoDeploy="true"

     xmlValidation="false" xmlNamespaceAware="false">

    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>

</Host>

appBase="" //没有定义appBase目

docBase="/data/wwwroot/123.cn/" // docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。

appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录

下面我们通过部署一个java的应用来体会appBase和docBase目录的作用

下载zrlog :wget http://dl.zrlog.com/release/zrlog-1.9.1-cd87f93-release.war

du -sh zrlog-1.9.1-cd87f93-release.war

ls /usr/local/tomcat/webapps

拷贝文件:cp zrlog-1.9.1-cd87f93-release.war /usr/local/tomcat/webapps/

ls /usr/local/tomcat/webapps //可以看到多了一个zrlog-1.9.1-cd87f93-release目录,说明自动解压了

更改目录名:mv zrlog-1.9.1-cd87f93-release zrlog //目录改名zrlog后,会再次自动生成zrlog-1.9.1-cd87f93-release目

浏览器访问 ip:8080/zrlog/,出现安装向导

检查MySQL有没有启动:ps aux |grep mysql

启动的话进入mysql:mysql -uroot –paminglinux

创建数据库:create database zrlog;

创建用户名和密码:grant all on zrlog.* to 'zrlog'@127.0.0.1 identified 'aminglinux1';

测试登陆数据库

mysql -uzrlog -h127.0.0.1 -paminglinux1

show databases;

登陆安装向导

下一步

下一步

点击查看

创建123.cn网站

创建123.cn目录:mkdir /data/wwwroot/123.cn

移动文件:mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

在Windows主机里的hosts文件,绑定主机和123.cn

重启tomcat服务

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh

netstat -lntp |grep java

登陆www.123.cn

16.8 Tomcat日志

ls /usr/local/tomcat/logs

其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。

其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。

host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。

localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。

访问日志默认不会生成,需要在server.xml中配置一下。

具体方法是在对应虚拟主机的<Host></Host>里面加入下面的配置(假如域名为123.cn):

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

      prefix="123.cn_access" suffix=".log"

      pattern="%h %l %u %t &quot;%r&quot; %s %b" />

prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。