1.Tomcat介绍
https://blog.csdn.net/liuajiehe1234567/article/details/78760564
Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器。
这个软件用来装载你的javaweb程序,可以称它为web容器,你的jsp/servlet程序需要运行在Web容器上,Web容器有很多种,JBoss、WebLogic等等,Tomcat是其中一种。tomcat是一种web服务器,也可以称作运行在服务器(物理意义上的计算机)上的一种软件包。用来对服务器上的HTML文档提供访问权限控制。
tomcat所做的事情主要有:开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。
Tomcat的(HTTP类型)Connector组件实现了HTTP请求的解析,Tomcat通过Connector组件接收HTTP请求并解析,然后把解析后的信息交给Servlet处理:
对于静态资源(html/js/jpg等)请求,Tomcat提供默认的Servlet来处理并响应;
对于动态请求,可以映射到自己编写的Servlet应用程序来处理。
Nginx、Apache都是目前主流的Web服务器,也可以作为反向代理服务器;它们在处理大量并发的请求连接、连接会话管理和静态内容请求等方面相比Tomcat更具优势。
所以一般在实际应用中,先是通过Nginx(或Apache)反向代理服务器接收请求,匹配分离动态/静态请求(动静分离);
如果是静态请求,则转发到另外的Nginx WEB服务器上,返回静态内容;如果是动态请求,则转发到后面的Tomcat应用服务器,处理动态请求的业务逻辑。
---------------------
作者:尐譽
来源:CSDN
原文:https://blog.csdn.net/tjiyu/article/details/54590258
版权声明:本文为博主原创文章,转载请附上博文链接!
2.安装jdk
官方网址http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1)下载jdk版本1.8 x64,保存在/usr/local/src下
2)tar -zxvf jdk-8u191-linux-x64.tar.gz
3)mv jdk1.8.0_191 /usr/local/jdk1.8
4)vim /etc/profile, 写入下面的内容,来定义环境变量
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
5)source /etc/profile
6)用# java -version,来检查jdk是否成功安装,如果绿色线的部分和之前我们安装的版本名称一致,则为安装成功
3.安装Tomcat
1) 到https://tomcat.apache.org/去选择下载的版本,下载到/usr/local/src下面
2)tar -zxvf apache-tomcat-8.5.37.tar.gz
3)mv apache-tomcat-8.5.37 /usr/local/tomcat
4)/usr/local/tomcat/bin/startup.sh 用来启动tomcat
ps aux |grep java, 如果有Java的进程就表明Tomcat启动成功
5)关闭Tomcat服务,/usr/local/tomcat/bin/shutdown.sh
因为Tomcat不支持restart,所以如果改了配置文件就需要先关闭服务在开启服务
我们开启Tomcat之后,可以netstat -nltp |grep java, 可以发现8009;8080;8005三个端口被监听
8080为提供web服务的端口
8005为管理端口
8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到
4.配置Tomcat监听80端口
默认web访问的是80端口,在浏览器访问的时候可以省略但是其他的端口就不行,这样很不方便
tomcat支持自定义端口,所以为了方便我们把8080端口改为80
1)tomcat的配置文件在 /usr/local/tomcat/conf/server.xml下
vim /usr/local/tomcat/conf/server.xml
2)搜索8080,找到下面的内容,这个地方是控制监听端口的
connectionTimeout="20000" redirectPort="8443" /> 所以我们把8080改为80 3)重启tomcat服务 /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh 我们再用netstat -nltp |grep java, 就可以看到8080web端口已经改为80端口 注:有时我们改了tomcat的端口,但是netstat的结果显示没有监听到,那可能是出现了端口占用的情况,我们可以netstat -nltp |grep 80,来看一下是什么服务占用了端口 例如,如果是nginx占用了,在做实验的情况下,可以stop nginx的服务,然后再shutdown.sh和startup.sh tomcat服务 5-7.配置Tomcat的虚拟主机 就类似Apache和nginx web server,tomcat也支持虚拟主机,一个ip下可以访问多个域名(网站),每个网站的配置文件就是一个虚拟主机 1)vim /usr/local/tomcat/conf/server.xml 2 )搜索 Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> 配置文件的具体解释 Host name="localhost" appBase="webapps" 这个目录下面的子目录将自动被部署为应用,存放的内容为war包,且war(包括运行网站的配置,与数据库相关的文件,jsp)文件将被自动解压缩并部署为应用,默认为tomcat下webapps目录,如果不想访问默认ROOT目录,修改这里,同理如果想访问配置目录下应用为默认应用,在此目录下新增ROOT目录文件夹。 unpackWARs="true" autoDeploy="true"> 自动解压war包 如果我们不想用war包来作为web应用存放点,而是想要把一些jps程序存放到一个目录下再进行配置,那么就需要用docBase docBase就是用来制定存放war包解压过后的程序的目录 所以如果不想解压就用appBase 下面内容为配置日志 prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> 3)我们可以在localhost下面再新增一个虚拟主机,在后面写入下面的内容 unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 注: docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。 appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录 4)下面我们通过部署一个java的应用来体会appBase和docBase目录的作用 ZrLog 是使用 Java 开发的博客程序,具有简约,易用,组件化,内存占用低等特点 Markdown 编辑器,让更多的精力放在写作上,而不是花费大量时间在学习程序的使用上 下载zrlog #wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war 默认appBase是存放在/usr/local/tomcat/webapps/ cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/, 然后我们ls /usr/local/tomcat/webapps可以发现多了zrlog-1.7.1-baaecb9-release 和 zrlog-1.7.1-baaecb9-release.war cd /usr/local/tomcat/webapps/ mv zrlog-1.7.1-baaecb9-release zrlog 用浏览器访问192.168.224.128/zrlog 启动mysql,进入mysqld -uroot -p, 创建一个数据库 create database zrlog; 创建zrlog用户,grant all on zrlog.* to [email protected] identified by 'passwd'; 下一步点击完成,点击查看 如果我们不想访问的时候加目录,想直接访问域名 vim /usr/local/tomcat/conf/server.xml 搜索 unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 因为我们没有定义appBase而是定义了docBase,所以我们先创建/data/wwwroot/123.cn/ 并且把zrlog move到/data/wwwroot/123.cn/这个目录下, mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/ 重启tomcat服务 在Windows下面绑定host www.123.cn 在浏览器输入www.123.cn就可以访问之前设置的博客网站了 5)如果自己定义appBase,要记得创建ROOT目录,一些静态文件等都是放在appBase目录下的ROOT目录下的 5.Tomcat日志 • ls /usr/local/tomcat/logs,大概分为catalina;host-manager;localhost;host-manager • 其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。 • 其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。 • host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。 • localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。 • 访问日志默认不会生成,需要在server.xml中配置一下。配置方法如下 在对应虚拟主机的 prefix="123.cn_access" suffix=".log" pattern="%h %l %u %t "%r" %s %b" /> •prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。