五十九、配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

一、配置Tomcat监听80端口

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

搜索8080,找到这里

<Connector port="8080" protocol="HTTP/1.1"

              connectionTimeout="20000"

              redirectPort="8443" />

然后修改:

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

此时80端口被Nginx占用了,所以只能停掉Nginx。

# /etc/init.d/nginx stop

# /usr/local/tomcat/bin/shutdown.sh

# /usr/local/tomcat/bin/startup.sh

# netstat -lntp |grep 80

tcp6       0      0 :::80                    :::*                    LISTEN      2241/java          

tcp6       0      0 127.0.0.1:8005  :::*                    LISTEN      2241/java          

tcp6       0      0 :::8009                :::*                    LISTEN      2241/java      

8005端口若没有启动起来,浏览器访问这个页面就会很慢。


二、配置Tomcat虚拟主机

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

文件的格式是xml的。

其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,

appBase定义应用的目录,Java的应用通常是一个war的压缩包,只需要将war的压缩包放到appBase目录下面即可。war包里包含着运行这个网站的文件,配置,代码。

appBase:放war包的。

docBase:放网站程序的。

unpackWARs:是否自动解压。

下面这一段就属于虚拟主机,从前面的Host到后面的Host。

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


增加虚拟主机,编辑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>

appBase和docBase同时存在时,可以其中一个写空。

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

[root@MRX src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

[root@MRX src]# cd /usr/local/tomcat/webapps/

[root@MRX webapps]# mv zrlog-1.7.1-baaecb9-release  zrlog  改名为zrlog


浏览器访问 192.168.93.130/zrlog可以看到zrlog的安装向导

# ps aux |grep mysql   //到mysql创建一个数据库,检查有没有启动

# mysql -uroot -p12345

mysql> create database zrlog;     创建一个叫zrlog的数据库。

Query OK, 1 row affected (0.11 sec)

mysql> grant all on zrlog.* to "zrlog"@127.0.0.1 identified 'zrlog';  创建用户

Query OK, 0 rows affected (0.40 sec)

mysql> quit

# mysql -uzrlog  -pzrlog -h127.0.0.1

mysql> show databases;       检查一下

+--------------------------+

| Database                  |

+--------------------------+

| information_schema |

| test                            |

| zrlog                          |

+--------------------------+

3 rows in set (0.31 sec)              这里能看到zrlog就是没问题

再回到安装向导填入zrlog数据库的信息即可,邮箱自定义。

[root@MRX webapps]# mkdir /data/wwwroot/123.cn

[root@MRX webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

# /usr/local/tomcat/bin/startup.sh     //启动Tomcat

# /usr/local/tomcat/bin/shutdown.sh   //停止Tomcat,不支持restart。

# netstat -lntp |grep java    确认8005端口启动了

然后到Windows的hosts文件里将www.123.cn加进去,在192.168.93.130和127.0.0.1都要加。

再到浏览器搜索www.123.cn就可以看到域名显示的是www.123.cn

自定义的appBase目录下也应该创建一个ROOT目录,然后把静态文件放在该目录下。


三、Tomcat日志

# ls /usr/local/tomcat/logs

catalina.2018-05-15.log  catalina.out                 localhost.2018-05-15.log             manager.2018-05-15.log

catalina.2018-05-16.log  host-manager.2018-05-15.log  localhost_access_log.2018-05-15.txt

其中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 &quot;%r&quot; %s %b" />

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


扩展

邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37

JAR、WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725

tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26bdd0100gwpk.html

resin安装 1 tomcat 单机多实例

2 tomcat的jvm设置和连接数设置

3 jmx监控tomcat

4 jvm性能调优监控工具5 gvm gc 相关