摘要: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\" 重启t
直接访问,使用默认的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 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>
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,当出现问题时,我们应该第一想到去查看它。
相关文章推荐
樱桃cherry.com域名价格或达7位数美元2022-09-06
紫燕食品上市,卤味市场域名哪家强?2022-09-27
新一期域名交易排行榜,国别域名MA.ca成无冕之王2022-09-27
威瑞信发布2022年Q2行业简报:.com注册量下降2022-09-27
域名Keys.xyz被元宇宙游戏终端收购2022-09-20