配置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虚拟主机
无论是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 "%r" %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/),会出现安装向导,实际是配置数据库
登录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,系统信箱自定义即可.
填写完成后,点击下一步
说名:管理密码:123456; 网站标题和网站子标题随意定
点击下一步
安装完成点击查看
可以点击管理 ,登录到后台
可以在这里写文章.
若不想要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的页面, 并不是zrlog博客的页面
重启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
再次网页上访问测试
说明:域名访问成功了.
了解一下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 "%r" %s %b" />
</Host>
转载于:https://my.oschina.net/AnnaWu/blog/1525693