配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

 配置Tomcat监听80端口

 前面有介绍到Tomcat监听的端口为8080,若想直接在网页输入IP显示的就是Tomcat的页面,而不是输入IP还要加上监听端口8080,默认web访问的是80端口,也就是说可以省略掉80端口(即是输入IP访问不需要加上端口),但是如果想要访问其他的,就需要加上端口,这样是很不方便,Tomcat也是支持自定义端口的,可以把8080端口更改为80,怎么做呢?见以下做法:
 

编辑Tomcat配置文件

说明: 1.Tomcat配置文件路径/usr/local/tomcat/conf/server.xml
           2.原Tomcat监听的端口8080,修改为80端口.

[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml  

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


检查80端口是否被Nginx占用

说明:若80已经被Nginx占用,即使重启Tomcat服务,刚修改Tomcat配置将无法生效.
          所以需要先停掉Nginx服务.

[[email protected] ~]# netstat -nltp |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1824/nginx: master  

[[email protected] ~]# /etc/init.d/nginx stop
Stopping nginx (via systemctl):                            [  确定  ]

 

 修改Tomcat配置文件后,重启服务

说明:Tomcat是不支持重启服务,所以需要先停止服务再启动.

#关闭Tomcat
[[email protected] ~]# /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

#启动Tomcat
[[email protected] ~]# /usr/local/tomcat/bin/startup.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
Tomcat started.

[[email protected] ~]# netstat -nltp |grep java
tcp6       0      0 :::8009                 :::*                    LISTEN      58668/java          
tcp6       0      0 :::80                   :::*                    LISTEN      58743/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      58668/java    

 在网页上访问测试

说明:将不再显示Nginx的欢迎页面,而是显示Tomcat的页面



配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

 

配置Tomcat虚拟主机

无论是Apache还是Nginx都属于Web Server,都支持虚拟主机配置文件,什么意思呢,虚拟机主配置文件,就是一台服务器上或者一个Web Server ,支持一个域名下面可以访问,一个IP下面可以访问多个域名,每个域名代表着一个网站,所以可以配置多个网站,其实每个网站的虚拟主机,每个网站的配置文件,都是一个虚拟主机. Tomcat同样也存在这样的概念.


编辑Tomcat配置文件

[[email protected] ~]# 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 &quot;%r&quot; %s %b" />

      </Host>

说明:<Host name="localhost"  【localhost--域名】
           appBase="webapps"        【appBase--应用项目在哪里】

ps:例如搭建了一个Tomcat,要想用Tomcat去跑一个网站,需要把网站放在哪里呢? 首先应用项目肯定不能是一个传统所谓的目录.Apache和Nginx访问一个网站,需要指定一个目录DocumentRoot,那个目录存放着PHP的文件或者是html的文件,然后再去访问. 但Tomcat就不太一样了,Tomcat需要提供一个WAR的包,就是一个文件、压缩包,这个压缩包包含着运行网站一些文件,配置,包含JSP的代码,还有一些和数据库相关的(图片,静态文件等等),它需要打包WAR,打包成一个这样的文件,打包的文件需要放到webapps里面.

       unpackWARs="true"  【unpackWARs--意思是是否自动解压WAP这个包; true--意思是自动解压】
       ps: unpackWARs="true" 参数的作用是把WAR这个压缩包放到webapps这里面,自动将其解压.

 

增加一个虚拟主机

说明:增加在第一个虚拟机结束符“</Hosr>” 下面

[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml  

<Host name="www.test.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Centext path="" docBase="/data/www/test.cn/" debug="0" reloadable="true" crossContext="true"/>
     </Host>

注:这个虚拟机没有指定appBase,而是指定一个目录,这个目录存放着一些JSP的文件,也就是说提供不是一个WAR包,而就是一个目录,这个目录里面就有JSP的程序,指定了docbase, 相当于是把解压完的WAR包放到docbase所定义的目录里面.
docBase这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样,在这一步操作过程中访问出现404的问题,其实就是docBase没有定义对.
appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录.
appBase和docBase只能定义其中一个.
简单来理解就是appBase是放war包的. docBase是放网站目录的.

 

关于java的博客zrlog

下载zrlog

[[email protected] src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war


解压zrlog 

说明 :把zrlog下载的包拷贝appBase里面,appBase支持自动解压war包的.
           默认appBase是/usr/local/tomcat/webapps/下

[[email protected] src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

# 解压完毕
[[email protected] src]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war

 

把解压后的目录重命名

[[email protected] webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[[email protected] webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release.war

 

安装zrlog博客

说明:在网页访问 zrlog目录(http://192.168.2.180/zrlog/),会出现安装向导,实际是配置数据库

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

 

登录mysql,创建一个库

说明:创建一个zrlog库

[[email protected] ~]# mysql -uroot -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> create database zrlog;
Query OK, 1 row affected (0.05 sec)


创建用户

说明:创建一个zrlog用户和密码

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '123456'
    -> ;
Query OK, 0 rows affected (0.11 sec)

创建完用户和数据库之后,检查一下是否能登录

说明:可以登录

[[email protected] ~]# 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 5
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.

 
填写信息

说明:数据库名和数据库用户是刚刚创建的,数据库端口是3306,系统信箱自定义即可.

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

  填写完成后,点击下一步

说名:管理密码:123456; 网站标题和网站子标题随意定

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

 

点击下一步

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

安装完成点击查看

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

可以点击管理 ,登录到后台

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志


可以在这里写文章.

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

 

若不想要zrlog这个目录,直接使用域名去访问,怎么办? 看看Tomcat配置文件,前面已经创建一个新的虚拟主机,  域名叫做www.test.cn, appBase没有定义,意思是不需要弄任何的war包过来,但是定义了docBase,定义docBase就是一个目录,是把war包解压完的目录放到docBase,所以可以zrlog目录移动docBase目录去.

 

创建docBase所定义的目录

[[email protected] ~]# mkdir /data/www/test.cn


把appBase目录下zrlog目录移动到docBase下

说明: appBase 即是/usr/local/tomcat/webapps;docBase 即是/data/www/test.cn


[[email protected] ~]# mv /usr/local/tomcat/webapps/zrlog/* /data/www/test.cn/

 

绑定hosts

说明:在windows上,然后再拼一下,成功后再网页上访问

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志


网页上访问测试

说明:显示仍然是Tomcat的页面, 并不是zrlog博客的页面

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志


重启Tomcat服务

[[email protected] ~]# /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


[[email protected] ~]# /usr/local/tomcat/bin/startup.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
Tomcat started.
 

[[email protected] ~]# netstat -nlpt |grep java
tcp6       0      0 :::8009                 :::*                    LISTEN      5469/java           
tcp6       0      0 :::80                   :::*                    LISTEN      5469/java           
tcp6       0      0 127.0.0.1:55925         :::*                    LISTEN      5495/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      5469/java           
tcp6       0      0 127.0.0.1:45925         :::*                    LISTEN      5495/java           
tcp6       0      0 127.0.0.1:25925         :::*                    LISTEN      5495/java  

 

再次网页上访问测试

说明:域名访问成功了.

配置Tomcat监听80端口 、 配置Tomcat虚拟主机 、Tomcat日志

了解一下webapps目录

[[email protected] ~]# cd /usr/local/tomcat/webapps/
[[email protected] webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war

[[email protected] webapps]# ls ROOT
asf-logo-wide.svg  bg-middle.png    bg-nav.png    favicon.ico  RELEASE-NOTES.txt  tomcat.gif  tomcat-power.gif  WEB-INF
bg-button.png      bg-nav-item.png  bg-upper.png  index.jsp    tomcat.css         tomcat.png  tomcat.svg

说明:webapps目录下的ROOT目录,放的一些图片文件,可以通过localhost/ index.jsp 直接访问到的, 实际上IP直接访问默认访问到的就是ROOt目录.
假如定义一个appBase,那虚拟主机appBase假如定义到了一个目录下,那如果要访问appBase里面的东西,去那里找呢?  比如是一个图片,那么需要到root目录下去找,也就是说自定义的appBase也要创建一个ROOT目录,且应该要一些静态文件放到ROOT目录下去,才可以正常访问.

 

Tomcat日志

介绍一下Tomcat的日志,Tomcat用的还是挺多的,如果出现了问题,怎么去查,怎么去找问题,无疑肯定是要查看日志,那么Tomcat的在哪里,都有哪些日志,接下来会说到.


首先看看Tomcat logs下有哪些文件

[[email protected] ~]# cd /usr/local/tomcat/logs/
[[email protected] logs]# ls
catalina.2017-08-29.log  host-manager.2017-08-29.log  localhost_access_log.2017-08-29.txt
catalina.out             localhost.2017-08-29.log     manager.2017-08-29.log

说明: 日志分为四类:
           第1类:catalina开头的日志为Tomcat综合日志,记录Tomcat服务相关的信息,会记录错误                        日志.
           第2类:其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日                        志.
           第3类:host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管                        理日志.
           第4类:localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访                           问日志,不带access字样的为默认虚拟主机的错误日志.

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


设置www.test.cn访问日志 

说明:●prefix定义访问日志的前缀, suffix定义日志的后缀.
          ●pattern定义日志格式.
          ●新增加的虚拟主机默认并不会生成类似于默认虚拟主机的那个localhost.日期.log日志,错误日志会             统一记录到catalina.out中,关于Tomcat日志最需要关注的是catalina.out.

  </Host>
      <Host name="www.test.cn" appBase=""
          unpacjWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/www/test.cn/" debug="0" reloadable="true" crossContext="true"/>
#在这下面设置访问日志:
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="test.cn_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

 

转载于:https://my.oschina.net/AnnaWu/blog/1525693