16.4
16.4
脑洞老湿_ 发表于3个月前
16.4
  • 发表于 3个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

16.4 配置Tomcat监听80端口

 vim /usr/local/tomcat/conf/server.xml
Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"
 /usr/local/tomcat/bin/shutdown.sh
 /usr/local/tomcat/bin/startup.sh
[root@DasonCheng ~]# vim /usr/local/tomcat/conf/server.xml
Connector port="80" protocol="HTTP/1.1     //修改8080为80端口,保存退出;
[root@DasonCheng ~]# netstat -lntp |grep 80
tcp6       0      0 :::8080                 :::*                    LISTEN      31072/java          
tcp6       0      0 :::80                   :::*                    LISTEN      5381/httpd    //httpd占用了80端口,先关闭;
[root@DasonCheng ~]# /usr/local/apache2.4/bin/apachectl stop    //关闭httpd;
[root@DasonCheng ~]# /usr/local/tomcat/bin/shutdown.sh    //关闭tomcat;
[root@DasonCheng ~]# /usr/local/tomcat/bin/startup.sh    //开启tomcat;
[root@DasonCheng ~]# netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      31775/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      31775/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      31775/java   

> 在实际生产环境中,tomcat会使用8080端口,而80端口是留给Nginx的。也就是说想要访问tomcat,需要使用Nginx代理;12.16 Nginx代理

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

vim /usr/local/tomcat/conf/server.xml
其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,
appBase定义应用的目录,Java的应用通常是一个jar的压缩包,你只需要将jar的压缩包放到appBase目录下面即可。刚刚阿铭访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
增加虚拟主机,编辑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>
docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。
appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录
下面我们通过部署一个java的应用来体会appBase和docBase目录的作用
下载zrlog wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog
浏览器访问 ip:8080/zrlog/install/
mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

> <Host /Host>解析:
其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录,Java的应用通常是一个jar的压缩包,你只需要将jar的压缩包放到appBase目录下面即可。刚刚阿铭访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。
appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录

> tomcat的404:appBase,docBase和ROOT目录;ROOT存放静态png,或者jsp页面等;

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

使用Tomcat部署一个java应用:

[root@adailinux src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@adailinux src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
//因为appbase支持自动解压war包,所以将zrlog包放到appbase的根目录下。
[root@adailinux src]# ls /usr/local/tomcat/webapps/
docs      host-manager  ROOT                         zrlog-1.7.1-baaecb9-release.war
examples  manager       zrlog-1.7.1-baaecb9-release
//拷贝完成后,zrlog包会自动被解压,解压完成后就可以直接访问该文件。  
重命名:
[root@adailinux src]# cd /usr/local/tomcat/webapps/
[root@adailinux webapps]# mv zrlog-1.7.1-baaecb9-release zrlog

浏览器输入192.168.8.132/zrlog 进入安装向导:
mark

创建数据库:

[root@adailinux ~]# mysql -uroot -p123456
Welcome to the MySQL monitor.
mysql> create database zrlog;
Query OK, 1 row affected (0.00 sec)

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

连接数据库:

mark

创建管理员密码:

mark
完成创建
mark

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

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

[root@adailinux ~]# vim /usr/local/tomcat/conf/server.xml
……
    <Host name="www.zrlog.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/>
    </Host>
……
[root@adailinux ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@adailinux ~]# /usr/local/tomcat/bin/startup.sh

创建docbase指定的目录,并将zrlog的所有内容移动到该目录下:

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

测试:
mark

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字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置一下。
具体方法是在对应虚拟主机的<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,当出现问题时,我们应该第一想到去查看它。
[root@adailinux ~]# ls /usr/local/tomcat/logs/
catalina.2017-08-29.log      localhost.2017-08-29.log
catalina.out                 localhost_access_log.2017-08-29.txt
host-manager.2017-08-29.log  manager.2017-08-29.log

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

配置访问日志:

在对应虚拟主机的<Host></Host>里面加入下面的配置(以域名www.zrlog.cn为例):

  <Host name="www.zrlog.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"    //核心;
               prefix="www.zrlog.cn_access" suffix=".log"
               pattern="%h %l %u %t "%r" %s %b" />
    </Host>

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

共有 人打赏支持
粉丝 2
博文 71
码字总数 81838
×
脑洞老湿_
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: