16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志

  • 作者:新网
  • 来源:新网
  • 2018-03-28 01:08:36

16.4 配置Tomcat监听80端口 直接访问,使用默认的web服务,需要改动端口为80,如果不是80端口那么访问页面的时候需要指定端口才能访问 vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1....

16.4 配置Tomcat监听80端口

直接访问,使用默认的web服务,需要改动端口为80,如果不是80端口那么访问页面的时候需要指定端口才能访问

vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"

重启tomcat服务

/usr/local/tomcat/bin/shutdown.sh //关闭服务 /usr/local/tomcat/bin/startup.sh //开启服务

关闭服务的时候报错

[root@aminglinux-02 ~]# /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 八月 29, 2017 11:00:28 下午 org.apache.catalina.startup.Catalina stopServer 严重: Could not contact [localhost:[8005]]. Tomcat may not be running. 八月 29, 2017 11:00:28 下午 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java.net.ConnectException: 拒绝连接 (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:477) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)

查度娘以后得到答案,需要

export JAVA_HOME=/usr/local/jdk1.8/

才能正常关闭

正常关闭以后就可以正常开启tomcat服务

查看是否开始监听80端口

发现并没有监听,因为nginx已经监听了 80,80端口被占用

[root@aminglinux-02 ~]# !net netstat -lntp |grep java tcp6 0 0 :::8009 :::* LISTEN 2597/java

所需需要停掉nginx服务

[root@aminglinux-02 ~]# service nginx stop Stopping nginx (via systemctl): [ 确定 ]

停掉服务以后再重启tomcat 就可以查看到 80端口了

[root@aminglinux-02 ~]# /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/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@aminglinux-02 ~]# /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/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@aminglinux-02 ~]# !net netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 2690/java tcp6 0 0 :::8009 :::* LISTEN 2690/java

在浏览器看看不加8080访问tomcat 是否能访问默认页

在8005管理端口还没有完全启动之前,页面是打不开的,需要等8005管理端口完全开启以后才能访问

image

16.5/16.6/16.7 配置Tomcat虚拟主机

在之前的学习,Apache还是nginx都属于webServer,都支持虚拟主机配置文件,虚拟主机配置文件一台服务器上或者一个webserver上,支持一个IP下可以访问多个域名,美国域名代表一个网站,所以可以配置多个网站,每个网站都称之为一个虚拟主机,tomcat同样也支持这个概念

开启虚拟机

编辑配置文件

vim /usr/local/tomcat/conf/server.xml

搜索 Host

tomcat的配置文件格式为 xml,语法是“<>开头,</>结尾”

虚拟主机配置文件内容

其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录,Java的应用通常是一个jar的压缩包,你只需要将jar的压缩包放到appBase目录下面即可。
刚刚访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。

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

name="localhost //主机名

appBase="webapps" //应用项目所在 ①知识点②知识点

unpackWARs="true" //是否自动解压 “为true是会自动解压”

知识点:tomcat他需要提供一个war的包,这里包含着运行这个网站的文件、配置、数据库相关等等。

知识点:可以单独的指定一个目录,这个目录里面存放的是 jsp 的文件,也就是说提供的不是war包

知识点:webapps的默认路径为/usr/local/tomcat/webapps/,webapps目录下,默认有5个目录(docs examples host-manager manager ROOT)

增加虚拟主机

<Host name="www.123.cn"; appBase="" //写空就不会于docBase相互干扰 unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/123.cn/" //自定义站点路径,不使用自动安装war的方式 debug="0" reloadable="true" crossContext="true"/> </Host>

1.docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。 1.appBase为应用存放目录(实际上是一个相对路径,相对于 /usr/local/tomcat/ 路径),通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录

为了方便测试,下载一个zrlog(java写的blog站点应用,轻量),进行测试

wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war 测试一

测试appbase自动解压war包

[root@aminglinux-02 src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ [root@aminglinux-02 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

发现移动到webapps目录以后,不一会就会生成一个目录,说明配置是有效的

为了不影响实验结果,先更改自动生成的目录的名字,再移走webapps目录下的war包;因为一旦移走war包,和war同名的目录也会自动删除;如果这个目录下没有和war同名的目录,也会重复的解压

[root@aminglinux-02 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war [root@aminglinux-02 webapps]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/src/ [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog

这是就可以登录站点,尝试访问了

image

安装向导,其实就是一个配置数据库的过程

配置数据库

现在就来创建一个供zrlog使用的数据库,和账户

create databases zrlog ; grant all on zrlog.* to 'zrlog'@localhost identified by 'aminglinux' ;

顺手检查一下mysql用户是否正确

[root@aminglinux-02 webapps]# mysql -uzrlog -paminglinux 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.00 sec)

然后回到浏览器,配置相关信息,之后就能访问了

image

测试二

测试用docBase指定路径,访问是否生效

前面做了新增虚拟机配置,自然就需要生成对应的目录

mkdir /data/wwwroot/123.cn/

将之前的zrlog的文件移动到当前目录下

mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/ [root@aminglinux-02 yulongxuan]# ls /data/wwwroot/123.cn/ admin/ assets/ error/ favicon.ico include/ install/ META-INF/ WEB-INF/

重启服务 之前修改了配置文件,新增了虚拟主机,但并没有重启,所以没有及时生效

[root@aminglinux-02 yulongxuan]# /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/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@aminglinux-02 yulongxuan]# /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/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.

然后通过浏览器访问 www.123.cn

image

16.8 Tomcat日志 ls /usr/local/tomcat/logs 其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。 其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。 host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。 localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志

日志不会默认生成

•具体方法是在对应虚拟主机的<Host></Host>里面加入下面的配置(假如域名为123.cn):

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="123.cn_access" suffix=".log" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

•prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣