16.4 配置tomcat监听80端口

 

默认浏览器访问某域名或ip时访问80端口,若其他端口需要在末尾特殊注明

 

修改tomcat监听的端口

[root@hyc-01-01 ~]# vim /usr/local/tomcat/conf/server.xml

67          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080

 68     -->

 69     <Connector port="80" protocol="HTTP/1.1"

 70                connectionTimeout="20000"

 71                redirectPort="8443" />

 72     <!-- A "Connector" using the shared thread pool-->

重启服务

[root@hyc-01-01 ~]# /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@hyc-01-01 ~]# /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.

[root@hyc-01-01 ~]# ps aux|grep java

root      3974  3.7  8.0 2281856 81444 pts/0   Sl   07:43   0:03 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

root      4006  0.0  0.0 112720   980 pts/0    R+   07:44   0:00 grep --color=auto java

端口占用

[root@hyc-01-01 ~]# netstat -lntp|grep java tomcat监听的端口中没有80

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3974/java          

tcp6       0      0 :::8009                 :::*                    LISTEN      3974/java          

[root@hyc-01-01 ~]# netstat -lntp|grep 80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      946/nginx: master 80端口被nginx占用

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3974/java          

tcp6       0      0 :::8009                 :::*                    LISTEN      3974/java 

停止nginx服务

[root@hyc-01-01 ~]# /etc/init.d/nginx stop

Stopping nginx (via systemctl):                            [  确定  ]

再重启tomcat服务

检查80端口监听情况

[root@hyc-01-01 ~]# netstat -lntp |grep 80

tcp6       0      0 :::80                   :::*                    LISTEN      4090/java          

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      4090/java          

tcp6       0      0 :::8009                 :::*                    LISTEN      4090/java 

 

16.5 配置tomcat的虚拟主机(上)

 

编辑配置文件

[root@hyc-01-01 ~]#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>

以上就是一台主机的配置,到此该主机配置结束

这里的webapps是一个相对路径,实际绝对路径应该是/usr/local/tomcat/webapps

 

tomcat的应用项目:tomcat正常提供web服务需要提供一个war的包(一个压缩包),该包中包含了运行该网站的一些文件(包括配置、jsp代码、数据库相关的文件),需要将该包放到webapps

unpackWARs:是否自动解压WAR包(true or false),若该项为true,则用户将WAR包放入webappsWAR包就会被自动解压

用户也可以指定一个目录,此时提供的不再是WAR包,而是一个存放jsp程序的目录,在目录中存放jsp的文件,此时需要的不是appbase而是docbase

 

用户可以在原先主机的后面直接增加新的主机配置:

               prefix="localhost_access_log" suffix=".txt"

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

 

      </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参数为空,在下面的配置中定义了docBase,为避免相互干扰通常appbasedocbase总有一个为空

 

16.6 配置tomcat的虚拟主机(中)

 

下载zrlogwar

将下载的war包放到appbase的路径下

[root@hyc-01-01 src]# mv zrlog-1.9.1-cd87f93-release.war /usr/local/tomcat/webapps

[root@hyc-01-01 webapps]# ls

docs      host-manager  ROOT                         zrlog-1.9.1-cd87f93-release.war

examples  manager       zrlog-1.9.1-cd87f93-release

文件webapps自动解压了zrlog-1.9.1-cd87f93-release的压缩文件

 

为了不影响实验,将zrlog-1.9.1-cd87f93-release.warwebapps下移走或删除;

为方便实验将包名改为一个简短的名称

[root@hyc-01-01 webapps]# rm -f zrlog-1.9.1-cd87f93-release.war

[root@hyc-01-01 webapps]# mv zrlog-1.9.1-cd87f93-release/ zrlog

使用1.7的版本在删除war包时由war包生成的目录也会被删除

 

用浏览器访问zrlog

8.30 16.4-16.8_tomcat

该界面要求用户配置zrlog使用的数据库,zrlog不会自动创建数据库

 

数据库相关操作:

检查数据库是否正常启动

[root@hyc-01-01 webapps]# ps aux|grep mysql

root       828  0.0  0.0 115432  1704 ?        S    15:24   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/hyc-01-01.pid

mysql     1210  0.0 24.4 1302736 458344 ?      Sl   15:24   0:13 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=hyc-01-01.err --pid-file=/data/mysql/hyc-01-01.pid --socket=/tmp/mysql.sock

root     11276  0.0  0.0 112724   984 pts/0    S+   19:22   0:00 grep --color=auto mysql

登录数据库进行相关操作:

创建数据库zrlog

mysql> create database zrlog;

Query OK, 1 row affected (0.00 sec)

创建用户zrlog,授予用户zrlog对数据库zrlog的所有权限,指定zrlog登录的ip127.0.0.1

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'hyc940421';

Query OK, 0 rows affected (0.00 sec)

检查配置是否正确

[root@hyc-01-01 webapps]# mysql -uzrlog -h127.0.0.1 -phyc940421

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| zrlog              |

+--------------------+

2 rows in set (0.00 sec)

 

在浏览器填写相关信息

8.30 16.4-16.8_tomcat_02

 

8.30 16.4-16.8_配置_03

8.30 16.4-16.8_监听 _04

8.30 16.4-16.8_监听 _05

 

总结:

安装zrlog的相关操作

1 部署环境

tomcat+jdk

2 下载zrlogWAR

3 WAR包放到appbase指定的目录下,若设置了unpackWARs="true"可以使WAR包自动解压,解压后的目录就是要访问的位置

4 博客对帖子的相关操作需要用到数据库,需要在系统中创建对应的数据库用户、密码并创建对应的数据库

 

16.7 配置tomcat的虚拟主机(下)

 

通过配置使用户访问zrlog时可以不输入http://192.168.31.129/zrlog,而是输入域名访问

 

      <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"/>

 

[root@hyc-01-01 conf]# mkdir /data/wwwroot/123.cn 创建docBase指定的目录

[root@hyc-01-01 conf]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

移动zrlog文件到docBase定义的目录下

windows主机上的hosts文件中将域名与服务器ip绑定

测试绑定是否成功

8.30 16.4-16.8_监听 _06

重启tomcat服务

在浏览器输入www.123.cn访问zrlog博客

8.30 16.4-16.8_tomcat_07

 

Webapps下的ROOT目录

当用户只输入服务器ip时显示的页面就是ROOT目录下的index.jsp

当用户只在浏览器输入ip时默认会将请求交给localhost,根据配置文件,会到webapps目录下寻找访问内容,默认访问webapps/ROOT下的内容

有时用户会自定义appBase目录,此时该目录下也应该创建一个ROOT目录

使用自定义的appBase目录时,用户需要将图片等静态文件以及.jsp文件放到appBase目录中的ROOT目录中才可以正常访问

 

16.8 tomcat日志

 

[root@hyc-01-01 tomcat]# ls logs

catalina.2018-09-01.log  host-manager.2018-09-01.log  localhost_access_log.2018-09-01.txt

catalina.out             localhost.2018-09-01.log     manager.2018-09-01.log

tomcat的四类日志

catalina开头:

tomcat的综合日志,记录tomcat服务相关信息及错误日志,通常该日志中出现严重等字眼时需要重点关注

每天会生成一个新的catalina.xxxx-xx-xx.log文件,该文件内容与catalina.out相同

host-managermanager:记录管理相关的信息,接触不多

localhostlocalhost_access:默认虚拟主机的错误日志

access字样为访问日志,不带access字样为默认虚拟主机的错误日志

 

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

        <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" />

directory="logs" 定义访问日志的目录

prefix="localhost_access_log" 访问日志的前缀名

suffix=".txt" 访问日志的后缀名