簡介
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.www58058.com/76867
您好,我想問一下,您寫的這個LAMT實現動靜分離,靜態資源放在哪,如何請求,我只看到了你這反向代理動態資源