中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tomcat的安裝部署

發布時間:2020-06-12 14:02:49 來源:億速云 閱讀:127 作者:元一 欄目:系統運維

一、前言

今天講解有關tomcat的安裝部署。

1.Apache和Nginx的區別

Apache是同步多進程模型,一個連接對應一個進程,而nginx是異步的,多個連接(萬級別)可以對應一個進程。
nginx輕量級,抗并發,處理靜態文件好
Apache超穩定,對PHP支持比較簡單,nginx需要配合其他后端用,處理動態請求有優勢,建議使用前端nginx抗并發,后端apache集群,配合起來會更好。

2.Apache和Nginx的特點

Apache支持支持模塊多,性能穩定,Apache本身是靜態解析,適合靜態HTML、圖片等,但可以通過擴展腳本、模塊等支持動態頁面等。但是其配置相對復雜,自身不支持動態頁面。

Nginx,輕量級的HTTP服務器,是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器。其特點是占有內存少,并發能力強,易于開發,部署方便。Nginx 支持多語言通用服務器。但是,Nginx 只適合靜態和反向代理。其優點在于支持:負載均衡、反向代理、處理靜態文件。Nginx 處理靜態請求的速度高于Apache(3倍以上)。

二、Tomcat概念

1.Tomcat 簡介

Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。

Tomcat優點

1、兼有可擴du展性和安全性。假如單位時間內訪問請求zhi數急劇增加,可以用相對較低的費dao用增加前端的能力。

2、比較容易擴展。由于是通過在這臺功能強大的服務器上運行的單個servlet容器,實際上也就不需要考慮session狀態在分布式環境下的維護這類復雜的問題。

3、臺后端服務器在外界不可以訪問,網上的黑客只能訪問前端的web服務器,不能直接訪問后端的應用服務器,這就提高了安全性。但這并不意味著黑客們不能通過網絡瀏覽器進行其它形式的攻擊。

2.Tomcat優勢

對于學習了或者正在學習Java的朋友對Tomcat應該是比較熟悉的了。

最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。

其優點在于它是一個動態解析容器,處理動態請求,是編譯JSP/Servlet的容器,其缺點也十分明顯,只能做Java服務器,并且在并發量上有限制。

至于更加深層的原因,需要有一定的架構思想才能深入理解和總結歸納Apache、Nginx和Tomcat的區別于聯系。本文核心是針對初學者而言,主要講解Tomcat的部署操作流程,因此,更深的原因在這里就不再贅述了,但是我們一定要知道“無論什么,存在的就是合理的,而我們所要做的便是透過現象看本質!”

三、Tomcat的核心組件

Tomcat 是 Apache 下的一個子項目,它具備 Web 服務器的所有功能,不僅可以監聽接受請求并響應靜態資源,而且可以在后端運行特定規范   的 Java 代碼 Servlet,同時將執行的結果以 HTML 代碼的形式寫回客戶端。

Tomcat的三大核心組件:Web容器、Servlet容器以及JSP容器

  1. Web容器:完成Web服務器的功能;
  2. Servlet容器:名字為catalina,用于處理Servlet代碼;
  3. JSP容器:用于將JSP動態網頁翻譯成Servlet代碼。

四、Tomcat處理請求過程

1) 請求被發送到本機端口 8080,被在那里偵聽的 Coyote HTTP/11.1 Connector(連接器) 獲得。

2)  Connector 把該請求交給它所在的 Service 的 Engine(引擎) 來處理,并等待來自 Engine的回應。

3)  Engine 獲得請求 localhost/yy/index.JSP,匹配它所擁有的所有虛擬主機 Host;

Engine 匹配到名為 localhost 的 Host。即使匹配不到也把請求交給該 Host 處理, 因為該 Host 被定義為該 Engine 的默認主機。

4)    localhost Host 獲得請求/yy/index.JSP,匹配它所擁有的所有 Context;

Host 匹配到路徑為/yy 的 Context。如果匹配不到,就把該請求交給路徑名為“”的 Context 去處理。

5)     path=”/yy”的 Context 獲得請求/index.JSP,在它的 mapping table 中尋找對應的 Servlet。

Context 匹配到 URL PATTERN 為*.JSP 的 Servlet,對應于 JSPServlet 類。

6)     構造 HttpServletRequest 對象和 HttpServletResponse 對象, 作為參數調用JSPServlet 的 doGet()或 doPost()方法。

7)     Context 把執行完了之后的 HttpServletResponse 對象返回給 Host。

8)     Host 把 HttpServletResponse 對象返回給 Engine。

9)     Engine 把 HttpServletResponse 對象返回給 Connector。

10) Connector 把 HttpServletResponse 對象返回給客戶 browser。

或許看了上面的過程,感覺實在是過于復雜,下面給出具體的流程圖,大家可以根據流程圖進行邏輯上的理解:

Tomcat的安裝部署

connector連接器和container容器

Connector 用于接收請求并將請求封裝成Request 和Response 來具體處理,(最底層是使用Socket 來進行連接的)其中 Request 和Response 是按照HTTP 協議來封裝的,所以Connector 同時實現了TCP/IP 協議和HTTP 協議, Request 和Response 封裝完后交給Container 進行處理,Container 即Servlet 的容器, Container 處理完之后返回給Connector,最后Connector 使用Socket 將處理結果返回給客戶端,這樣整個請求就處理完了,具體請求過程如上圖所示。

而Container 則是Tomcat 中容器的接口,通常使用的Servlet 就封裝在其子接口Wrapper 中。(Container 一共有4 個子接口Engine 、Host 、Context 、Wrapper 和一個默認實現類ContainerBase,每個子接口都是一個容器,這4 個子容器都有一個對應的StandardXXX 實現類,并且這些實現類都繼承ContainerBase 類。另外Container 還繼承Lifecycle 接口,而且ContainerBase 間接繼承LifecycleBase,所以Engine 、Host 、Context 、Wrapper 4 個子容器都符合前面講過的Tomcat生命周期管理模式。)

五、Tomcat部署操作流程

所需環境:

  • 系統版本:Centos7
  • Tomcat版本:9.0.8
  • jdk版本:1.8.0_201
  • 服務器ip地址:192.168.68.145

部署具體步驟:

1.首先需要以下兩個包

[root@localhost tomcat]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm

軟件包鏈接:https://pan.baidu.com/s/1q9igHqlkIVJtqRS8zbuibQ
提取碼:xzaj

2.安裝jdk

[root@localhost tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm 
警告:jdk-8u201-linux-x64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID ec551f03: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
   1:jdk1.8-2000:1.8.0_201-fcs        ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
[root@localhost tomcat]# cd /usr/java/
[root@localhost java]# ls
default  jdk1.8.0_201-amd64  latest
[root@localhost java]# cd jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# ls
bin             lib          src.zip
COPYRIGHT       LICENSE      THIRDPARTYLICENSEREADME-JAVAFX.txt
include         man          THIRDPARTYLICENSEREADME.txt
javafx-src.zip  README.html
jre             release

bin/:命令文件存放目錄

jre/:jvm的虛擬機存放位置

lib/:函數庫目錄

src.zip/:源碼壓縮包目錄

3.設置環境變量(系統環境變量/etc/profile)

3.1查看當前路徑,查看jdk原版本
[root@localhost jdk1.8.0_201-amd64]# pwd
/usr/java/jdk1.8.0_201-amd64
[root@localhost jdk1.8.0_201-amd64]# java -version            #簡化版jdk原本就集成在Centos7中
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@localhost jdk1.8.0_201-amd64]# 
3.2設置環境變量
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile         
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile 
[root@localhost jdk1.8.0_201-amd64]# tail -3 /etc/profile     #添加的內容

export JAVA_NAME=/usr/java/jdk1.8.0_201-amd64         #工作路徑
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar   #類文件的位置
export PATH=$JAVA_NAME/bin:$PATH                      #命令文件
[root@localhost jdk1.8.0_201-amd64]# java      #證明source成功
java            javafxpackager  javapackager    javaws.itweb
javac           javah           java-rmi.cgi    
javadoc         javap           javaws          
[root@localhost jdk1.8.0_201-amd64]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

[root@localhost jdk1.8.0_201-amd64]# 

4.安裝Tomcat

[root@localhost tomcat]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm
[root@localhost tomcat]# tar zxf apache-tomcat-9.0.16.tar.gz -C /opt
[root@localhost tomcat]# cd /opt/
[root@localhost opt]# ls
apache-tomcat-9.0.16  rh
[root@localhost opt]# mv apache-tomcat-9.0.16/ tomcat
[root@localhost opt]# ls
rh  tomcat
[root@localhost opt]# cd tomcat/
[root@localhost tomcat]# ls
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp

其中 webapps是站點,

5.優化啟動關閉腳本,開啟關閉操作

[root@localhost tomcat]# cd bin/
[root@localhost bin]# ls
bootstrap.jar                 makebase.sh
catalina.bat                  setclasspath.bat
catalina.sh                   setclasspath.sh
catalina-tasks.xml            shutdown.bat
ciphers.bat                   shutdown.sh
ciphers.sh                    startup.bat
commons-daemon.jar            startup.sh
commons-daemon-native.tar.gz  tomcat-juli.jar
configtest.bat                tomcat-native.tar.gz
configtest.sh                 tool-wrapper.bat
daemon.sh                     tool-wrapper.sh
digest.bat                    version.bat
digest.sh                     version.sh
makebase.bat
[root@localhost bin]# ln -s /opt/tomcat/bin/startup.sh /usr/bin
[root@localhost bin]# ln -s /opt/tomcat/bin/shutdown.sh /usr/bin[root@localhost bin]# systemctl stop firewalld.service 
[root@localhost bin]# setenforce 0
[root@localhost bin]# startup.sh  #開啟服務
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# netstat -antp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      47064/java
[root@localhost bin]# shutdown.sh 
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
[root@localhost bin]# netstat -antp | grep 8080
tcp6       0      0 ::1:39678               ::1:8080                TIME_WAIT   -                   

6.測試驗證

當我們開啟Tomcat服務的時候,可以在瀏覽器中使用“IP地址:8080”進行訪問,如下圖所示

Tomcat的安裝部署

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韩城市| 随州市| 嘉鱼县| 平南县| 金山区| 观塘区| 孝昌县| 玛曲县| 德化县| 丰都县| 拜城县| 黄山市| 卫辉市| 榕江县| 华宁县| 油尖旺区| 亳州市| 铜梁县| 湟源县| 台中市| 英吉沙县| 子长县| 德庆县| 凤台县| 双辽市| 广宗县| 玛沁县| 当阳市| 廊坊市| 麟游县| 五河县| 西和县| 扶余县| 客服| 仙桃市| 临潭县| 凤阳县| 海口市| 阳高县| 闵行区| 淮安市|