您的位置:首页 > 运维架构 > Tomcat

配置Tomcat的虚拟主机

2018-01-23 00:00 423 查看

16.4 配置Tomcat监听80端口

[root@cham002 ~]# vim /usr/local/tomcat/conf/server.xml
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP  Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
:wq
[root@cham002 ~]# /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@cham002 ~]# /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@cham002 ~]# netstat -lntp |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      8038/java
tcp6       0      0 :::8009                 :::*                    LISTEN      8038/java
[root@cham002 ~]# ps aux |grep java
root      8038  3.3  8.2 2742148 83040 pts/1   Sl   22:12   0:02 /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 -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      8071  0.0  0.0 112680   976 pts/1    S+   22:14   0:00 grep --color=auto java

说明: 此时Tomcat服务正常运行,但是没有监听端口,监听80端口的是nginx服务。

如果想让Tomcat监听80端口,需要关闭nginx服务,然后重启Tomcat服务。
[root@cham002 ~]# /etc/init.d/nginx stop
Stopping nginx (via systemctl):                            [  确定  ]
[root@cham002 ~]# /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@cham002 ~]# /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@cham002 ~]# netstat -lntp |grep 80
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      1680/rpc.mountd
tcp6       0      0 :::80                   :::*                    LISTEN      8136/java
tcp6       0      0 :::20048                :::*                    LISTEN      1680/rpc.mountd
tcp6       0      0 :::8009                 :::*                    LISTEN      8136/java
[root@cham002 ~]# ps aux |grep java
root      8136  9.7  6.7 2725708 68300 pts/1   Sl   22:16   0:01 /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 -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      8155  0.0  0.0 112680   976 pts/1    S+   22:17   0:00 grep --color=auto java

说明: 在配置文件中搜索8080找到如上所示参数,将默认的8080端口改为80端口,更改完成后重启服务。



说明: 此时使用浏览器访问主机IP可以直接进入Tomcat主页。



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

[root@cham002 ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="www.123.cn" appBase=""
#appbase是定义Tomcat的应用(war文件)存放位置
#如果未使用该参数定义其应用,可以使用docbase来指定应用存放目录
#当这两个参数同时存在时,需要将其中一个写为空!!!!!!
unpackWARs= "true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
</Host>






说明: 在配置文件中搜索“Host”找到虚拟主机配置参数,在配置文件自带(默认)虚拟主机后面增加如上参数(增加一个虚拟主机)。

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

本节使用Tomcat部署一个Java应用。

下载zrlog

[root@cham002 ~]# cd /usr/local/src
[root@cham002 src]# ls
apache-tomcat-8.5.24.tar.gz  httpd-2.4.29.tar.gz                           php-5.6.30
apr-1.6.3                    jdk-8u161-linux-x64.tar.gz                    php-5.6.30.tar.gz
apr-1.6.3.tar.gz             mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  php-7.1.6
apr-util-1.6.1               mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz     php-7.1.6.tar.bz2
apr-util-1.6.1.tar.bz2       nginx-1.12.1                                  phpredis-develop
httpd-2.4.29                 nginx-1.12.1.tar.gz                           phpredis-develop.zip
[root@cham002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war 
[root@cham002 src]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT
[root@cham002 src]# cp zrlog-1.7.1-baaecb9-release.war  /usr/local/tomcat/webapps/
#因为appbase支持自动解压war包,所以将zrlog包放到appbase的根目录下。
[root@cham002 src]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release.war
[root@cham002 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
#拷贝完成后,zrlog包会自动被解压,解压完成后就可以直接访问该文件。待解压完后对其重命名
[root@cham002 src]# cd /usr/local/tomcat/webapps/
[root@cham002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war
[root@cham002 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
#对其重命名
[root@cham002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release.war
#当war包存在的时候会再次生成目录
[root@cham002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release.war
[root@cham002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war


安装zrlog

在浏览器输入IP:192.168.230.135/zrlog/instll 进入安装向导:



创建数据库

[root@cham002 webapps]# ps aux |grep mysql
root      2321  0.0  0.1 115392  1592 ?        S    1月21   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/cham002.pid
mysql     2483  0.0 43.9 1038604 443344 ?      Sl   1月21   2:14 /usr/local/mysql/bin/mysqld --basedir=/usr/localmysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/cham002.err --pid-file=/data/mysql/cham002.pid --socket=/tmp/mysql.sock
root      8334  0.0  0.0 112684   976 pts/1    S+   23:01   0:00 grep --color=auto my

[root@cham002 webapps]# mysql -uroot -pchampin
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 1
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.07 sec)

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

mysql> quit
Bye
#检测创建用户是否正确,这里输入快了密码champinlinux写成champinliunx############################

[root@cham002 webapps]# mysql -uzrlog -h127.0.0.1 -pchampinliunx
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.08 sec)

mysql> quit
Bye

我把它改回来
[root@cham002 webapps]# mysql -uroot -pchampin
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 4
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 grants for zrlog@127.0.0.1;
+--------------------------------------------------------------------------------------------------------------+
| Grants for zrlog@127.0.0.1                                                                                   |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zrlog'@'127.0.0.1' IDENTIFIED BY PASSWORD '*DC194C2CB27660577928CA8C4287922182392453' |
| GRANT ALL PRIVILEGES ON `zrlog`.* TO 'zrlog'@'127.0.0.1'                                                     |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

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

mysql> quit
Bye

[root@cham002 webapps]# mysql -uzrlog -h127.0.0.1 -pchampinlinux
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 6
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>


连接数据库



创建管理员密码



创建完成后点击“下一步”:



完成以上操作后,需要在Windows中绑定hosts。如果已经忽略







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

之前想要访问zrlog需要在浏览器中指定IP和目录(192.168.8.132/zrlog),那么如何才能输入IP直接访问该目录呢?配置如下:

[root@cham002 webapps]# vim /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>
……
:q!

[root@cham002 webapps]# mkdir /data/wwwroot/123.cn
[root@cham002 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

[root@cham002 webapps]# /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@cham002 webapps]# /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.

完成以上操作后,在Windows中绑定hosts,访问,已操作忽略





比对一下配置文件。



appBase="webapps" /usr/local/tomcat/webapps/

conf /usr/local/tomacat/conf/

16.8 Tomcat日志

[root@cham002 ~]# cd /usr/local/tomcat/
[root@cham002 tomcat]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@cham002 tomcat]# ls logs
catalina.2018-01-21.log      host-manager.2018-01-23.log          localhost_access_log.2018-01-23.txt
catalina.2018-01-22.log      localhost.2018-01-21.log             manager.2018-01-21.log
catalina.2018-01-23.log      localhost.2018-01-22.log             manager.2018-01-22.log
catalina.out                 localhost.2018-01-23.log             manager.2018-01-23.log
host-manager.2018-01-21.log  localhost_access_log.2018-01-21.txt
host-manager.2018-01-22.log  localhost_access_log.2018-01-22.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>里面加入下面的配置(以域名www123.cn为例):

<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"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="www.123.cn_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>

核心参数:<Valve/> 说明:
prefix定义访问日志的前缀;
suffix定义日志的后缀;
pattern定义日志格式。
新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: