配置Tomcat监听80端口
1.tomcat监听的是8080端口,如果不想在浏览器中输入IP+8080端口,需要进行配置。web服务默认访问的是80端口。
2. tomcat也是支持定义端口的,比如将8080端口修改为80端口。需要编辑/usr/local/tomcat/conf/server.xml。将配置文件中<Connector port="8080" protocol="HTTP/1.1"
改为80
3 重新启动服务,先关闭再开启
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
使用ps aux 查看80 端口会发现有以下提示
[root@chunt ~]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 859/nginx: master p
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2970/java
tcp6 0 0 :::8009 :::* LISTEN 2970/java
[root@chunt ~]#
这里是因为80端口已经被nginx使用,所以是没有配置成功的,这叫做端口占用。解决办法是停止nginx服务,再重启开启tomcat
[root@chunt ~]#
[root@chunt ~]# !net
netstat -lntp |grep 80
tcp6 0 0 :::80 :::* LISTEN 3108/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3108/java
tcp6 0 0 :::8009 :::* LISTEN 3108/java
[root@chunt ~]#
4 .现在在浏览器中IP后面就可以不用写上8080了。在未启动8005端口之前,访问tomcat速度会比较慢。
配置Tomcat的虚拟主机
1.不管是nginx还是Apache都属于web服务,都支持虚拟主机配置文件,一个web服务可以支持一个ip下面访问多个域名(网站),每一个网站都是一个虚拟主机。tomcat也是支持的。
2 每一个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 "%r" %s %b" />
</Host>
name表示域名
appBase 表示应用项目在哪里。(这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用)
unpackWARs表示是否自动解压WAR这个包(true是自动解压)
3 .新增加一个虚拟主机,写入以下内容
</Host>
<Host name="www.123.cn" appBase="/data/tomcatweb/"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/data/wwwroot/zcy.cn
debug="0"
reloadable="true" crossContext="true"/>
</Host>
如果不想让WAR包存在(定义appbase),那么可以定义docBase,这里目录里面是存放网站的程序就可以了。 (相当于把WAR包解压后的文件放在dosbase指定的目录中。 appbase和docbase这2个里面只能2选一,同时存在可以把其中一个留空,避免相互影响。如果出现404的问题,那么很可能是这2项没有定义对。
4 . 通过部署一个java的应用来体会appbase和docbase目录的作用。
(1)
java博客可以使用zrlog项目
(2)下载war包放在/usr/local/src目录下
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
appbase支持自动解压WAR包的,appbase默认是在/usr/local/tomcat/webapps/下,将war包移动过去就能自动解压缩了,为不影响实验,需要将WAR包移除webapps目录(不能删除)
[root@chunt src]# ls /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT
[root@chunt src]#
[root@chunt src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@chunt src]# !ls
ls /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release.war
[root@chunt 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
[root@chunt src]#
然后用浏览器去访问会出现安装向导
(3)在mysql中创建库与用户
mysql> create database zrlog;
Query OK, 1 row affected (0.01 sec) //创建库
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'zcylinux';
Query OK, 0 rows affected (0.02 sec)
检查创建的用户是否正确 ,看是否能登录上去。
(4)然后再去浏览器中去完成信息
过程:
1 部署环境 (tomcat+jdk)
2 下载rzlogWAR包,并放在webapps下。(自动解压成目录 ,这个目录就是我们要访问的项目)
不过有不好的是需要IP跟目录名
3 配置数据库
创建mysql对应的库、用户、密码
如果想使用域名访问,需要/webapps下的rzlog移动到/data/wwwroor/zcy.cn下。然后再去绑定hosts.接着重新启动服务即可。
appbase是存放war包的 docbase是放网站程序的。
- 在/webapps下的root目录里面是存在一些可以直接访问的图片或文件的
localhost/index.jsp 或者localhost/bg-nav.png
tomcat日志
- tomcat的日志存放在/usr/local/tomcat/logs下,主要分为4类
(1)catalina开头的日志为tomcat的综合日志,它记录tomcat服务相关信息,也会记录错误日志。
(2)其中catalina.2018-xx-xx.log和catalina。out内容相同,前者会每天生成一个新的日志。
(3)host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志
(4)localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志
(5)访问日志默认不会生成,需要在server.xml中配置一下。