16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志
2019独角兽企业重金招聘Python工程师标准>>>
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管理端口完全开启以后才能访问
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 applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: 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>
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
这是就可以登录站点,尝试访问了
安装向导,其实就是一个配置数据库的过程
配置数据库
现在就来创建一个供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)
然后回到浏览器,配置相关信息,之后就能访问了
测试二
测试用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
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 "%r" %s %b" />
•prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。
转载于:https://my.oschina.net/nova12315/blog/1785451
16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志相关推荐
- 6月27日任务 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 1. vim /usr/local/tomcat/conf/server.xml Co ...
- 配置Tomcat监听80端口配置Tomcat虚拟主机Tomcat日志
2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 Tomcat默认监听8080.8005以及8009端口,日常进行浏览器访问时,需要输入 ...
- 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志
配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol=&quo ...
- Tomcat(1)介绍、jdk安装、安装Tomcat 配置Tomcat监听80端口
Tomcat介绍 (使用yum 下载安装的openjdk下载以后就可以使用) 以下实验用的是在官网下载程序包. Tomcat是一个中间键,要解析java相关的东西,需要先下载JDK 下载jdk 1.下 ...
- Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口
2019独角兽企业重金招聘Python工程师标准>>> Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta ...
- 58.配置tomcat监听80 虚拟主机 日志
2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机(有如何创建一个zrlog博客) ...
- nginx监听80端口转发到tomcat 8080端口
nginx的配置目录:/etc/nginx下 因为nginx会自动导入sites-available/default的文件和conf.d文件夹下的conf文件,我选择通过第二种方式倒入配置: 1.cd ...
- shell习题第6题:监听80端口
[题目要求] 写一个脚本,判断本机的80端口(加入服务为httpd)是否开启,如果开启就什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知相关人员 [核心要点] 检测80端口使用 ...
- nginx配置监听443端口,开启ssl协议,走 https 访问
本文目录 前言 一.检查 linux 服务器上的 nginx 是否安装 ssl 模块 二:为 nginx 安装 ssl 模块 三.nginx 开启 443 端口监听(https配置) 成功配好后的效果 ...
最新文章
- dac0832控制电机驱动流程图_智能电机驱动器让你的机器人控制更简单
- ubuntu 中修改用户名后sudo无法解析主机
- SQL Server数据库中使用sql脚本删除指定表的列
- Go 结构体的值传递和地址传递
- 关于机器学习的训练数据、验证数据和测试数据的形象比喻
- cos66度20分怎么用计算机算,物化2期末考试计算复习题
- ECMA学习小结(3)——constructor 和 prototype
- java 读取 文件 short_Java RandomAccessFile readShort()方法
- 华为服务器的中国梦——给客户带来价值
- 修改初始Manager QuerySets,重写Manager.get_query_set()函数之后,发现并没有按照我们指定的方法执行。...
- python车牌识别系统开源代码_TensorFlow车牌识别完整版代码(含车牌数据集)
- 基于聚类算法与随机森林算法的手机终端换机推荐
- UltraISO9.3.0.2610中文绿色注册版
- 三级缓存 SD—内存—网络
- 宋体 ttf_.shx和.ttf字体,你真的了解?
- 命令行使用oracle19c_把oracle19c数据导入oracle11g
- 【常用工具类】EasyExcel
- 3D成像方法汇总(原理解析):双目视觉、激光三角、结构光、ToF、光场、全息...
- Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
- 五一培训 清北学堂 DAY3