Tomcat默认监听8080、8005以及8009端口,平常进行浏览器访问时,须要输入域名+端口,十分不方便,咱们能够经过修改Tomcat配置文件,使其监听80端口,便可解决这个问题。html
vim /usr/local/tomcat/conf/server.xml 将Connector port="8080" protocol="HTTP/1.1"修改成Connector port="80" protocol="HTTP/1.1"
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 2108/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2108/java tcp6 0 0 :::8009 :::* LISTEN 2108/java
8005端口监听速度要稍慢一些,在8005端口监听以前,访问Tomcat服务主页的速度会比较慢java
注:若是Tomcat没有监听80端口,多是其余服务将80端口占用(如Nginx),须要先中止相关服务,再重启Tomcat便可。mysql
在以前的学习中,Apache仍是nginx都属于webServer,都支持虚拟主机配置文件,虚拟主机配置文件就是一台服务器上或者一个webserver上,支持一个IP下能够访问多个域名,每一个域名表明一个网站,因此能够配置多个网站,每一个网站的虚拟主机,每一个网站的许配置文件都是一个虚拟主机,tomcat一样也支持这个概念linux
vim /usr/local/tomcat/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
其中<Host>和</Host>之间的配置为虚拟主机配置部分nginx
增长虚拟主机,编辑/usr/local/tomcat/conf/server.xml,在</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>
docBase,这个参数用来定义网站的文件存放路径,若是不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase能够同样。web
若是不定义appbase,不想要war存在,能够用docBase定义一个目录,目录里放网站的程序,这个至关于把war包解压放到目录里,若是不想要解压这个包,就能够放到appbase里面,这两个二选一,若是同时存在,能够把其中一个写空,防止相互干扰,有时会出现404问题,就有多是appbase或者docbase定义错误。sql
下面经过部署一个java的应用来体会appBase和docBase目录的做用数据库
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
appBase为应用存放目录(其实是一个相对路径,相对于 /usr/local/tomcat/ 路径),它能够自动解压war包,一般是须要把war包直接放到该目录下面,它会自动解压成一个程序目录apache
cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@linux-5 ~]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
经过ls命令能够发现,当文件拷贝至webapps目录下后,没有进行任何操做,war包已被自动解压。vim
[root@linux-5 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog [root@linux-5 ~]# rm -f /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war
删除webapps目录下的war包,避免重复解压,注意要现将解压后的目录更名字,不然连同解压后的目录会被一块儿删掉
浏览器输入192.168.88.5/zrlog
访问后会弹出安装向导,填写数据库相关信息,zrlog不会自动建立,所以在安装以前咱们须要建立相应的数据库与用户。
[root@linux-5 webapps]# ps aux|grep mysql root 981 0.0 0.0 115384 1692 ? S 19:17 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-5.pid mysql 1344 0.0 24.2 973052 452220 ? Sl 19:17 0:05 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/linux-5.err --pid-file=/data/mysql/linux-5.pid --socket=/tmp/mysql.sock --port=3306 root 3124 0.0 0.0 112676 984 pts/0 R+ 23:02 0:00 grep --color=auto mysql
mysql> create database zrlog;
mysql> grant all on zrlog.* to 'zrlog'@'127.0.0.1' identified by '123456';
[root@linux-5 webapps]# mysql -uzrlog -h127.0.0.1 -p123456 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.35 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.00 sec)
检查无误后,按要求填写相关信息
按要求完成安装后,便可查看主界面
经过appBase的方式搭建有一个缺点,在访问时除了输入地址外,还须要加一个/zrlog的目录。
针对上述问题,能够采用docBase指定路径,解决这个问题
mkdir /data/wwwroot/123.cn/
将zrlog的文件目录移动到docBase指定路径下
[root@linux-5 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
浏览器输入www.123.cn
网站能够正常访问
注:在自定义appBase的目录时,应在自定义的目录下建立一个ROOT目录,并将图片、静态文件、主页等存于该目录下,由于appBase搭建,默认访问的是自定义目录下的ROOT目录。不然在访问时可能会遇到404问题。
[root@linux-5 webapps]# ls /usr/local/tomcat/logs catalina.2018-07-04.log host-manager.2018-07-04.log localhost.2018-07-05.log manager.2018-07-04.log catalina.2018-07-05.log host-manager.2018-07-05.log localhost_access_log.2018-07-04.txt manager.2018-07-05.log catalina.out localhost.2018-07-04.log localhost_access_log.2018-07-05.txt
• 其中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 "%r" %s %b" />
prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增长的虚拟主机默认并不会生成相似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,最须要关注catalina.out,当出现问题时,咱们应该第一想到去查看它。