简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
Tomcat安装
搭建tomcat运行环境需分两步实现:jdk+tomcat,安装方式有两种,系统自带的rpm包安装及其使用官方的二进制包,同时jdk的安装方式也有两种,系统自带的rpm包及官方下载的oracle的jdk的rpm包。
- 系统自带的openjdk+tomcat
yum list all *jdk* #查看yum仓库中jdk版本 yum -y install java-1.8.0-openjdk_x86_64 java-1.8.0-openjdk-devel_x86_64 yum -y install tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp
- 使用Oracle JDK和tomcat提供的编译完成的程序包
rpm -ivh jdk-8u131-linux-x64.rpm tar -xf apache-tomcat-9.0.0.M21.tar.gz -C /usr/local/ cd /usr/local ln -sv apache-tomcat-9.0.0.M21 tomcat vim /etc/profile.d/tomcat.sh #通过官网下载二进制包及其rpm安装的tomcat和jdk需导入环境变量 export CATALINA_BASE=/usr/local/tomcat export PATH=$CATALINA_BASE/bin:$PATH . /etc/profile.d/tomcat.sh vim /etc/profile.d/java.sh #java导入环境变量 JAVA_HOME=/usr/java/latest PATH=$JAVA_HOME/bin:$PATH . /etc/profile.d/java.sh
tomcat程序环境:
tomcat的目录结构 [root@centos704 ~]#cd /usr/share/tomcat/ #系统自带方式安装 [root@centos704 tomcat]#ls bin conf lib logs temp webapps work bin:脚本,及启动时用到的类; conf:配置文件目录; lib:库文件,Java类库,jar; logs:日志文件目录; temp:临时文件目录; webapps:webapp的默认目录; work:工作目录; rpm包安装的程序环境: 配置文件目录:/etc/tomcat 主配置文件:server.xml webapps存放位置:/var/lib/tomcat/webapps/ examples manager host-manager docs Unit File:tomcat.service 环境配置文件:/etc/sysconfig/tomcat tomcat的配置文件: server.xml:主配置文件; web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置; context.xml:每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置; tomcat-users.xml:用户认证的账号和密码文件; catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略; catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数; logging.properties:日志系统相关的配置; tomcat的组件: server.xml <Server> <Service> <connector/> <connector/> <Engine> <Host /> <Host> <Context/> ... </Host> </Engine> </Service> </Server> 每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型: 顶级组件:Server 服务类:Service 连接器:http, https, ajp(apache jserv protocol) 容器类:Engine, Host, Context 被嵌套的组件:valve, logger, realm, loader, manager 集群类组件:listener, ...
启动tomcat配置应用
部署(deploy)webapp的相关操作: deploy:将webapp的源文件放置于目标目录、配置tomcat服务器能够基于context.xml文件中定义的路径来访问此webapp;将其特有的类通过class loader装载至tomcat: 有两种方式: 自动部署:auto deploy 手动部署: (1) 冷部署:把webapp复制到指定位置,而后才启动tomcat; (2) 热部署:在不停止tomcat的前提下进行的部署: 部署工具:manager app、ant脚本、tcd(Tomcat Client Deployer)等; undeploy:反部署,停止webapp,并从tomcat实例上拆除其部署文件和部署名; stop:停止,不再向用户提供服务; start:启动处于“停止”状态的webapp; redeploy:重新部署; tomcat自带的应用程序: manager app: webapp管理工具; host manager: VHosts管理工具; 手动添加一个测试应用目录: 1、创建一个webapps特有的目录结构 [root@centos704 ~]#cd /usr/share/tomcat/webapps/ [root@centos704 webapps]# mkdir -pv myapp/{class,WEB-INF,META-INF,lib} 2、提供一个webapps的主页面 [root@centos704 webapps]#vim index.jsp <%@ page language="java" %> <%@ page import="java.util.*" %> <html> <head> <title>Test Page</title> </head> <body> <% out.println("hello world"); %> </body> </html> 3、启动应用程序,访问默认主页面及其myapp页面 systemctl start tomat
网页测试
启动管理页面工具编辑tomcat-user.xml配置文件,添加如下配置重启服务。
管理页面可以对web app进行部署,卸载,开启,关闭,reload,updat
[root@centos7 tomcat]#vim conf/tomcat-users.xml <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
实战配置LAMT实现动静分离
基于LAMT实现方式有两种,一种基于http,另一种基于ajp,如下配置:
前端调度器 (1).基于http [root@centos7 ~]#vim /etc/httpd/conf/httpd.conf #DocumentRoot "/var/www/html" #注释http默认页面 [root@centos7 conf.d]#vim http_tomcat.conf #proxy_http_module代理配置 <VirtualHost *:80> ServerName tc1.magedu.com ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / http://172.18.51.74:8080/ ProxyPassReverse / http://172.18.51.74:8080/ <Location /> Require all granted </Location> </VirtualHost>
2、使用ajp机制,使用虚拟主机 [root@centos7 conf.d]#vim ajp_tomcat.conf <VirtualHost *:80> ServerName tc1.magedu.com ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / ajp://172.18.51.74:8009/ ProxyPassReverse / ajp://172.18.51.74:8009/ <Location /> Require all granted </Location> </VirtualHost> [root@centos7 ~]#nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@centos7 ~]#systemctl restart nginx
原创文章,作者:Mr-Xiao,如若转载,请注明出处:http://www.178linux.com/76867
评论列表(1条)
您好,我想问一下,您写的这个LAMT实现动静分离,静态资源放在哪,如何请求,我只看到了你这反向代理动态资源