day61:配置Tomcat虚拟主机及日记

一、配置Tomcat监听80端口,因为在访问tomcat的网页时须要在网址后面加上:8080的端口,而要想直接访问的话,则须要修改成80的端口便可:java

1:配置Tomcat监听80端口:  修改配置文件:   /usr/local/tomcat/conf/server.xmlmysql

[root@localhost_002 tomcat]# vim /usr/local/tomcat/conf/server.xml 
    #<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
把这一行修改成:
     <Connector port="80" protocol="HTTP/1.1"

2:而后重启启动apache服务:         /usr/local/tomcat/shutdown.shweb

[root@localhost_002 tomcat]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost_002 tomcat]# /usr/local/tomcat/bin/startup.sh

注释:发现重启apache时没有起来,查看日记后而且监听端口80已经被占用:信息以下:sql

[root@localhost_002 tomcat]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:52588           0.0.0.0:*               LISTEN      871/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1081/master         
tcp6       0      0 :::52588                :::*                    LISTEN      871/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      1212/httpd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1081/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1795/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1795/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      1094/mysqld

注释:发现80端口已经被apache(http)占用,能够说明当80端口被占用时,其他须要80端口的服务就没法启动了,其而且查看其访问日记以下:数据库

[root@localhost_002 logs]# tail -f catalina.2018-08-30.log 
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
30-Aug-2018 22:06:12.330 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
30-Aug-2018 22:06:12.331 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]

3:解决办法:须要关闭apache服务,而后在从新启动Tomcatapache

[root@localhost_002 logs]# /usr/local/apapche2.4/bin/apachectl stop    #关闭apache服务:
[root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh       #关闭tomcat服务:
[root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh       #启动tomcat服务:
[root@localhost_002 logs]# netstat -lntp              #查看其监听端口:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:52588           0.0.0.0:*               LISTEN      871/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1081/master         
tcp6       0      0 :::52588                :::*                    LISTEN      871/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      1972/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1081/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1972/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1972/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      1094/mysqld

注释:发现tomcat服务能够正常启动,而且其端口为80:bootstrap

二、配置Tomcat的虚拟主机:一个服务器支持一个IP能够访问多个域名,每一个域名表明一个网站,即一个虚拟主机:vim

1:修改其Tomcat的配置文件:        /usr/local/tomcat/conf/server.xml                #新增配置文件:浏览器

[root@localhost_002 ROOT]# vim /usr/local/tomcat/conf/server.xml
</Host>
      <Host name="www.123.cn" appBase=""
#核心文件1:  name是定义域名, appBase是定义应用的目录:
         unpackWARs= "true" autoDeploy="true"
#核心文件2:  unpackWARs定义是否自动解压WAR包在appBase,autoDeploy表示tomcat服务运行时可以检测appBase下的文件,当有新的web应用加入进来,会自动发布这个应用:
         xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
      </Host>
    </Engine>
  </Service>
</Server>

注释:核心配置文件只有如下四行tomcat

name="www.123.cn"   表示指定域名:

appBase=" "  定义tomcat的应用(war文件)存放位置:

unpackWARs= "true"  表示是否自动解压WAR包,当把WAR包放到appBase里面的时候会自动解压的:true则是解压:

docBase="/data/wwwroot/123.cn/"   也能够解压到指定的目录,经过docbase来定义:至关因而把war包解压后的文件放到了这个目录:
若是你不想解压的话,则能够放到appBase目录:能够在使用appBase和docBase二选一,则须要把其中一个设置为空则能够:

注释:定义了docBase后就以该目录为主了:

2:本节咱们经过部署一个java的博客应用来体会下appBase和docBahse目录的应用:

1:下载这个war包的程序zrlog: wget  http://d1.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

[root@localhost_002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7122027 (6.8M) [application/zip]
正在保存至: “zrlog-1.7.1-baaecb9-release.war”
100%[===========================================================================================>] 7,122,027   4.12MB/s 用时 1.6s   
2018-08-30 23:21:57 (4.12 MB/s) - 已保存 “zrlog-1.7.1-baaecb9-release.war” [7122027/7122027])

2:把下载后的文件挪位置到tomcat:      /usr/local/tomcat/webapps/

[root@localhost_002 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

3:此时会发现webapps里的zrlog的已经自动解压到了目录:      #这得益于我定义的unpackWARs="true"

[root@localhost_002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war

注释:可是若是咱们挪走了这个目录,解压后的目录也会消失,因此咱们须要修更名称,由于若是下面安装博客时,会自动覆盖和解压到此目录:

注释:ROOT目录下主要放一些图片之类的,若是网站涉及到一些图片之类的,能够放在此目录下:

[root@localhost_002 webapps]# mv zrlog-1.7.1-baaecb9-release   zrlog

4:此时咱们在浏览器里访问,会出现安装向导:      http://192.168.149.130/zrlog

5:在mysql建立相关数据库和用户:   /usr/local/mysql/bin/mysql

[root@localhost_002 webapps]# /usr/local/mysql/bin/mysql    #进入mysql数据库:
mysql> create database zrlog;         #建立zrlog数据库:
Query OK, 1 row affected (0.04 sec)
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'nihao123!';  #建立zrlog用户:
Query OK, 0 rows affected (0.13 sec)
mysql> quit
Bye
[root@localhost_002 webapps]# /usr/local/mysql/bin/mysql -uzrlog -h127.0.0.1 -pnihao123! #测试用户:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.07 sec)

mysql> quit
Bye

注释:首先创进入mysql后,并建立数据库和对应用户,而后测试当前用户是否能够登陆:

由图例看到,咱们进入mysql经过绝对路径进入,能够把mysql加入到绝对路径后,能够经过mysql直接登陆:以下:

通常有临时修改和永久修改两种办法,以下:

[root@localhost_02 ~]# /usr/local/mysql/bin/mysql
mysql> quit
Bye
#临时添加绝对路径,重启后失效:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin
[root@localhost_02 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin
#永久添加绝对路径,需修改/etc/profile文件:加入以下一行:
[root@localhost_02 ~]# vim /etc/profile
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/usr/local/mysql/bin
[root@localhost_02 ~]# mysql
mysql> quit
Bye

6:而后把相关信息(mysql数据库名和密码)输入到博客的页面,以下:

7:而后点击下一步:设置管理员密码:admin,还有网站标题:子标题:

8:点击下一步后,查看你的网站,以下:

3:因为访问是经过192.168.149.130/zrlog(IP加域名)访问,那怎么设置经过IP地址直接访问该博客,设置以下

因为在以前的时候定义过docBase,而docBase是直接存放解压后的war文件: 以下:

<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的目录在/data/wwwroot/123.cn/目录下,全部须要把zrlog里的全部文件挪位置到docBase所定义的目录下才能够:以下:

[root@localhost_02 tomcat]# mkdir /data/wwwroot/123.cn 
[root@localhost_02 tomcat]# mv webapps/zrlog/* /data/wwwroot/123.cn/
[root@localhost_02 tomcat]# ls !$
ls /data/wwwroot/123.cn/
admin  assets  error  favicon.ico  include  install  META-INF  WEB-INF

1:而后须要重启启动服务,而且须要等8005端口(管理)起来后才能够访问:

[root@localhost_02 tomcat]# /usr/local/tomcat/bin/shutdown.sh     #关闭:
[root@localhost_02 tomcat]# /usr/local/tomcat/bin/startup.sh      #启动:
[root@localhost_02 tomcat]# netstat -lntp|grep java
tcp6       0      0 :::80                   :::*                    LISTEN      2843/java           
tcp6       0      0 127.0.0.1:56178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:46178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:26178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2843/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2843/java

2:访问测试:在浏览器输入域名:www.123.cn        注释:须要在物理机绑定hosts:

注释:可能会启动一些其余的端口,这是一些其余的应用端口了:

三、Tomcat日记:有四类日记:   /usr/local/tomcat/logs

[root@localhost_02 tomcat]# ls logs/
catalina.2018-08-30.log      host-manager.2018-08-31.log   manager.2018-08-31.log
catalina.2018-08-31.log      catalina.out                  manager.2018-08-30.log   
localhost.2018-08-31.log     localhost_access_log.2018-08-30.txt

cattalina开头的日记为tomcat的综合日记,记录tomcat的服务相关信息,也记录错误日记:

注释:其中catalina.2018.xx-xx.log和catalina.out内容相同,前者是天天会生成一个新的日记:

host-managermanager为管理相关日记,其中host-manager为虚拟主机的日记:

localhostlocalhost_access为虚拟主机相关日记,其中带access字的是访问日记,不带access字的为错误日记:访问日记默认没有,须要配置:

配置访问日记:   /usr/local/tomcat/conf/server.xml

<Host name="www.zrlog.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/>
#下面的内容是日记格式:
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="www.zrlog.cn_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>

核心参数:<Valve/> 说明: prefix定义访问日志的前缀; suffix定义日志的后缀; pattern定义日志格式。 新增长的虚拟主机默认并不会生成相似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最须要关注catalina.out,当出现问题时,咱们应该第一想到去查看它。

相关文章
相关标签/搜索