大纲
Tomcat默认监听8080端口,如果想修改监听80端口,则需要修改Tomcat的配置文件,server.xml
1 修改server.xml
#vim /usr/local/tomcat/conf/server.xml
2 找到Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"
找到并修改,
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3 重启服务
[root@AliKvn tomcat]# /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
[root@AliKvn tomcat]# /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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
4 检查进程和监听端口状态
[root@AliKvn tomcat]# ps aux |grep java
root 19693 2.4 4.4 2501500 84308 pts/1 Sl 11:03 0:02 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 19728 0.0 0.0 112660 964 pts/1 R+ 11:05 0:00 grep --color=auto java
[root@AliKvn tomcat]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29522/nginx: master
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19693/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19693/java
可以看到监听80端口的是nginx,此时nginx占用了80端口。
此时如果nginx把80端口占用了并导致tomcat修改的80端口监听失败的话,可以把nginx停掉,把80端口给空出来。
4.1 把nginx服务停止,并重启Tomcat服务
[root@AliKvn tomcat]# /etc/init.d/nginx stop
Stopping nginx (via systemctl): [ OK ]
[root@AliKvn tomcat]# /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
[root@AliKvn tomcat]# /usr/local/tomcat/bin/startup.sh.sh
-bash: /usr/local/tomcat/bin/startup.sh.sh: No such file or directory
[root@AliKvn tomcat]# /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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
4.2 再次检查监听的80端口(8005加载会比较慢,因为是管理端口)
[root@AliKvn tomcat]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19793/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19793/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19793/java
4.3 在windows测试访问tomcat网页
利用本地ip直接在浏览器访问,不需要加任何端口(因为访问浏览器是通过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
16.5 配置Tomcat的虚拟主机(上)
大纲
在之前的httpd和nginx里,提到有虚拟主机的概念,其实Tomcat也有虚拟主机一说。
Tomcat的虚拟主机配置文件是/usr/local/tomcat/conf/server.xml
1 介绍参数
#vim /usr/local/tomcat/conf/server.xml
参数解释:
其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名。
appBase定义应用的目录,Java的应用通常是一个war的压缩包,只需要将war的压缩包放到appBase目录下面即可。
(而httpd,nginx定义的虚拟主机目录是root)
unpackWARs表示自动解压war包,前提条件是war在appBase目录下(appBase的目录在/usr/local/tomcat/webapps/
)
刚刚访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
2 创建新的虚拟主机
在</Host>开始建立新的虚拟主机
#vim /usr/local/tomcat/conf/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>
参数解释:
Host name="www.123.cn"
域名是www.123.cn
docBase="/data/wwwroot/123.cn/"
不定义war包,就需要定义docBase,其实这里相当于是war后解压后的文件。
docBase与appBase二选一,如果同时存在,需要把其中一项写空。
16.6 配置Tomcat虚拟主机(中)
大纲
下面通过部署一个java的应用来体会appBase和docBase目录的作用
1 下载zrlog到/usr/local/src
#cd /usr/local/src
#wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
2 appBase的目录里的文件能自动解压war包(前提条件是unpackWARs= "true")
appBase的目录在
[root@AliKvn src]# ls /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT
2.1 cp zrlog的包到appBase下
[root@AliKvn src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@AliKvn src]# !ls
ls /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release.war
2.2再次进入appBase目录,zrlog包已经被解压,是因为unpackWARs= "true"参数起了作用
[root@AliKvn 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
2.3 将解压后的war包改名(改名的目的是方便后面页面访问,因为网页访问就是访问war后的内容)
[root@AliKvn webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@AliKvn webapps]# ls
docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release.war
2.4 改名完成后,war包发现自己解压出来的包不见了,从而还会继续自动解压(有必要时可以删掉war包)
[root@AliKvn webapps]# ls
docs host-manager ROOT zrlog-1.7.1-baaecb9-release
examples manager zrlog zrlog-1.7.1-baaecb9-release.war
3 访问zrlog
在网页访问zrlog,进行配置(本机ip/zrlog)
3.1 进入mysql创建一个库名为zrlog的库
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 'aminglinux1';
Query OK, 0 rows affected (0.00 sec)
zrlog用户登录,查看数据库,库添加成功。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zrlog |
+--------------------+
3 rows in set (0.00 sec)
回到windows浏览器zrlog配置访问页面,录入相关信息
端口默认3306
设置管理者信息
完成
4 配置完成后,再次访问zrlog页面
4.1 发文章测试
总结:
1 Tomcat环境搭建:JDK+Tomcat
2 下载war包到appBase,让其自动解压,解压后的目录就是部署的项目
3 配置数据库(添加zrlog账号,zrlog库),管理数据。
16.7 配置Tomcat虚拟主机(下)
访问zrlog不通过域名ip/zrlog的形式登录访问,而是直接通过域名访问。
1 [root@AliKvn webapps]# vim /usr/local/tomcat/conf/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>
利用新建的www.123.cn虚拟主机做实验
1.1 创建123.cn的目录
[root@AliKvn webapps]# mkdir /data/wwwroot/123.cn
1.2 把zrlog下面的相关程序摞到www.123.cn的docBase下面
[root@AliKvn webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
2 绑定windows的本机host
在host里面添加www.123.cn
2.1 绑定完成后,ping测试
ping后的ip必须会是本机的ip.
3 配置完成后,需要重启tomcat服务
[root@AliKvn webapps]# /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
[root@AliKvn webapps]# /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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
3.1 查看监听端口
[root@AliKvn webapps]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 20619/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 20619/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 20619/java
4 在windows浏览器测试
5 tomcat/root目录
之前访问Tomcat的默认页其实就是在appBase目录下面,不过是在它的子目录ROOT里
总结:
1 本机IP访问zrlog需要加/zrlog/(格式是:本机ip/zrlog/),
原因是appBase定义了webapps,而webapps是一个相对路径,相对于/usr/local/tomcat/webapps
它是利用war包(zrlog目录)来打开应用的,所以需要加/zrlog/
2 www.123.cn直接跳转到zrlog页面,是因为定义了docBase,而docBase相当于是www.123.cn的目录,
要想直接从www.123.cn跳转到zrlog,把web的应用相关文件(zrlog目录里面的文件)全部拷贝到里面,从而达到使用webapp(zrlog)的使用目的。
3 appBase与docBase二选一
appBase 放war包
docBase 放webapp,网站程序
16.4-16.8 Tomcat监听80端口,Tomcat的虚拟主机,访问日志
原文:http://blog.51cto.com/13578154/2116660