一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - WEB服務器 - 看看Tomcat安裝、配置、優化及負載均衡

看看Tomcat安裝、配置、優化及負載均衡

2021-06-01 01:33JAVA熊 WEB服務器

Tomcat得到了廣大開源代碼志愿者的大力支持,且可以和目前大部分的主流Web服務器(IIS、Apache服務器)一起工作,它運行穩定、可靠且高效。已成為目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。

 一、常見JavaWeb服務器

1、WebLogic:是BEA公司的產品、WebSphereAS:是IBM公司的產品、JBossAS:紅帽公司的產品,可以自行了解

2、Tomcat服務器:Sun公司在推出的小型Servlet/JSP調試工具的基礎上發展起來的一個優秀的Servlet容器,Tomcat本身完全用java語言編寫,所以tomcat的運行需要java的支持,所以要先安裝JDK,才能運行。

看看Tomcat安裝、配置、優化及負載均衡

目前是Apache開源軟件組織的一個軟件項目,它的官網 :

http://tomcat.apache.org

Tomcat得到了廣大開源代碼志愿者的大力支持,且可以和目前大部分的主流Web服務器(IIS、Apache服務器)一起工作,它運行穩定、可靠且高效。已成為目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。

二、Tomcat的目錄結構及常用配置

1、Tomcat的目錄層次結構

  • bin:存放啟動和關閉Tomcat的腳本文件
  • conf:存放Tomcat服務器的各種配置文件
  • lib:存放tomcat服務器支撐的jar包
  • logs:存放Tomcat的日志文件
  • temp:存放Tomcat運行時產生的臨時文件
  • webapps:web應用雖在目錄,即供外界訪問的web資源的存放目錄
  • work:Tomcat的工作目錄

2、JavaWeb應用的組成結構

  1. mail---------------------------Web應用所在目錄 |----html、jsp、css、js等文件,根目錄下的文件外界可以直接訪問 |----WEB-INF目錄 |---------classes目錄(java類) |---------lib目錄(java類運行所需的jar包) |---------web.xml(web應用的配置文件) WEB-INF 這個目錄下的文件外界無法直接訪問,由web服務器負責調用 

3、JavaWeb應用的發布

開放式目錄方式:

打包war方式: 使用 Jar -cvf *.war .

4、Tomcat的組成結構

Tomcat本身由一系列可配置的組件構成,其中核心組件是Servlet容器組件,它是所有其他Tomcat組件的頂層容器。

每個組件都可以在Tomcat安裝目錄/conf/server.xml文件中進行配置,每個Tomcat組件在server.xml文件中對應一種配置元素。下面用XML的形式展示各種Tomcat組件之間的關系

  1. <Server>代表整個Servlet容器組件,是最頂層元素,可以包含一個或多個<Service>元素 
  2.  <Service>包含一個<Engine>元素以及一個或多個<Connector>元素,這些<Connector>共享一個<Engine> 
  3.  <Connector/>代表和客戶程序實際交互的組件,負責接收客戶請求,以及向客戶返回響應 
  4.  <Engine>每個<Service>元素只能包含一個<Engine>元素,它處理在同一個<Service>中所有<Connector>接收到的客戶請求 
  5.  <Host>在一個<Engine>中可以包含多個<Host>,它代表一個虛擬主機(即一個服務器程序可以部署在多個有不同IP的服務器主機上),它可以包含一個或多個應用 
  6.  <Context>使用最頻繁的元素,代表了運行在虛擬主機上的單個web應用 
  7.  </Host> 
  8.  </Engine> 
  9.  </Service> 
  10. </Server> 

5、Tomcat體系結構

看看Tomcat安裝、配置、優化及負載均衡

6、虛擬目錄的映射方式

從Tomcat6開始,Tomcat支持自動映射,即tomcat服務器會自動管理webapps目錄下的所有web應用,并把它映射成虛擬目錄,換句話說,只需把web應用放在webapps目錄下,不需要配置Context,外界可以直接訪問。

但是如果你不想講項目放在webapps下,而是放在其他地方,還是需要配置Context,比如我的tomcat在C盤,我的項目在D盤,則需要在Host下增加如下虛擬目錄映射語句。

7、Context元素配置

tomcat在加載一個web應用時,會一次按照以下五種方式查找web應用中的元素,優先級一次降低,直到找到為止

  • 到Tomcat安裝目錄/conf/Context.xml文件中查找元素。
  • 到Tomcat安裝錄/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。
  • [enginename]:表示的name屬性
  • [hostname]:表示d的那么屬性
  • 到Tomcat安裝目錄/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素
  • [contextpath]:表示單個Web應用的URL入口
  • 到Web應用的META-INF/context.xml文件中查找元素
  • 到Tomcat安裝目錄/conf/server.xml文件中查找元素。只適用于單個Web應用

8、將項目部署為Tomcat默認應用

即訪問 http://localhost:8080 時出來的是tomcat自帶的歡迎頁面,改為登錄到自己的項目主頁。

方法一:

在Tomcat默認安裝后,tomcat的主目錄是webapps/root目錄,所以如果想改變tomcat的主目錄的話可以如下所做:

在/conf/server.xml文件的之間加入代碼

  1. <Contextpath=""docBase="C:\tomcat7\webapps\myapp"reloadable="true"debug="0"></Context> 
  2. <!-- 
  3. docBase改為自己需要的項目路徑 
  4. 如果建立了Apache和tomcat集群,Apache server 的默認端口是80 ,IE訪問的方法只需輸入:http://localhost,就可以自動定位到xx工程下面去 
  5. --> 

方法二:

將tomcat安裝目錄下的ROOT下的所有文件刪除,換成自己項目的文件,此法有點暴力。

方法三:

Tomcat5.0以下版本在C:/Tomcat/conf/Catalina/localhost目錄下會自動生成了一個ROOT.Xml,但是5.0以上版本不再生成此文件。

所以可以新建個ROOT.xml,在里面加入如下代碼:

  1. <?Xml version='1.0' encoding='utf-8'?> 
  2. <ContextcrossContext="true"docBase="C:\tomcat7\webapps\myapp"path=""reloadable="true"
  3. </Context> 
  4. <!--但是我自己在7.0版本上測試好像未成功,大家可以自己試試--> 

 

9、Context元素的屬性

 

path:指定訪問該Web應用的URL入口

docBase:指定Web應用的文件路徑,可以寫絕對路徑,也可以寫相對于appBase屬性的相對路徑

className:指定實現Context組件的Java類的名字,這個類必須實現org.apache.catalina.Contex接口,該屬性默認值為org.apache.catalina.core.StandardContext(不建議大家改動)

reloadable:如果為true,Tomcat服務器在運行狀態下回監視在WEB-INF/classes和WEB-INF/lib目錄下的class文件的改動,以及監視Web應用的WEB-INF/web.xml文件的改動,如果檢測到有更新,服務器會自動更新加載web應用。

其默認值為false。在開發和調試階段,將其改為true,一般像Eclipse等開發環境都會默認改為true。在正式發布階段,應將其該為false,可以降低Tomcat的運行負荷,提高Tomcat的運行性能

在一般情況下,元素都會使用默認的標準Context組件,即className屬性采用默認值org.apache.catalina.core.StandardContext,它除了擁有上面介紹到的屬性外,還有自身專有的屬性:

  • cachingAllowed:是否允許啟用靜態資源(HTML、圖片、聲音等)的緩存。默認值為true。
  • cacheMaxSize:設置靜態資源緩存的最大值,單位為K。
  • workDir:指定Web應用的工作目錄。
  • uppackWAR:如果為true,會把war文件展開為開放目錄后再運行。為false,直接運行war文件。默認值為true。

10、web.xml文件

該文件必須放在/WEB-INF目錄下,但是從7.0版本開始,Tomcat可以不使用web.xml文件,而是使用注解方式。

三、Tomcat的優化

1、內存使用配置

Tomcat是依賴于JVM的,所以Tomcat的使用內存配置實質上是JVM的內存配置。

在/bin目錄下的catalina.bat可以直接通過Tomcat設置JVM內存參數,windows下打開catalina.bat文件,在大概中間的位置,找到

  1. set "JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true" 

通過內存設置充分利用服務器內存

  • -server:模式啟動應用慢,但是極大程度提高運行性能
  • -Xms2048m -Xmx2048m:設置的是堆內存

java8開始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不會再有java.lang.OutOfMemoryError:PermGen space,可以不設置

  • Headless=true:適用于Linux系統,與圖形操作有關,如生成驗證碼含義是當前的是無顯示器的服務器,應用中如果獲取系統顯示有關的參數會拋出異常,windows系統可不用設置

可通過jmap -heap process_id查看設置是否成功

2、最大連接數配置(并發能力)

在/conf/server.xml里進行配置

在屬性中將protocol屬性改為

  1. "org.apache.coyote.http11.Http11NioProtocol", 

NIO模型的效率更高

加入

  1. maxThreads="500"  
  2. //當前可以同時處理的最大用戶訪問數 
  3. minSpareThreads="100"  
  4. //最小空閑線程連接數,用于優化線程池 
  5. maxSpareThreads="200" 
  6. acceptCount="200"  
  7. //當所有的線程以分配,仍然允許連接進來,但是出于等待狀態的用戶數。 
  8. //等待線程數+工作線程數=總的可最大連接數,如果超過此數, 
  9. //新的連接將不會被接受,就會產生一個http錯誤 
  10. enableLookups="false" 
  11. //是否允許DNS反查,如果為true,request.getRemoteHost會執行DNS查找,反向解析ip對應域名或主機名, 
  12. //當沒有這樣需要的時候,可以將這個功能關閉,在一定程度上提高了Tomcat服務器的性能 

四、負載均衡配置

負載均衡是提高應用負載量和容錯的有效手段,可以結合Nginxs與Tomcat實現,Nginx是一款性能優異的反向代理服務器。

1、負載均衡配置實現

反向代理原理示意圖:

看看Tomcat安裝、配置、優化及負載均衡

負載均衡示意圖:

看看Tomcat安裝、配置、優化及負載均衡

負載均衡策略:

Nginx 提供輪詢(round robin)、用戶IP哈希(client IP)和指定權重 3 種方式

2、負載均衡時Session的處理策略

Session是Tomcat服務器上的內存空間,如果一個用戶發出多個請求,卻發到了多個tomcat服務器中,那么就會出現Session不同步的問題

解決方案1

將一個用戶的請求鎖定到某一臺服務器上,簡單,但是缺乏容錯性,一旦某個服務器發生故障,Session可能丟失,(但是服務器發生故障是一個低概率事件,如果一個服務器經常掛掉,要么是硬件有問題,要么是應用有問題)

可以使用用戶IP哈希實現

解決方案2

Session復制策略,基于網絡的廣播策略,一個節點Session變化,其他節點同步復制,具有容錯性,但節點多或復制量大時對網絡負荷大,使網絡效率低下,甚至阻塞

① 在/conf/server.xml文件中開啟Session復制的選項,將注釋去掉,7.0默認值以配置好,需要接收器綁定內網(一般服務器都有兩塊網卡)網卡地址,修改端口>。

② 在應用中指定應用是在分布式部署之下,在web.xml中添加選項

解決方案3

額外創建一個共享的空間用來存放Session,所有服務器共享一個Session

memcached緩存共享方案基本原理

粘性Session與非粘性Session方式:

看看Tomcat安裝、配置、優化及負載均衡

需要一些工具jar包,官網有目錄和下載連接,在/conf/context.xml中進行配置,全局有效。

3、集群環境中應用代碼應注意的問題

傳遞Session需要實體類序列化支持,實現可序列化接口,設置版本號。

獲取用戶IP地址方法的變化,獲取真實客戶端ip而不是Nginx代理地址。

動靜分離結構的預規劃。一般高并發的網站上,資源類的文件,如js,css,圖片通常是由靜態服務器處理,Nginx處理靜態文件效率就非常高,而tomcat處理靜態文件是它很大的一個弱勢,tomcat只負責動態請求的處理。

那么編碼的時候就要考慮靜態資源最后可能要被拿出去,地址會有變化,所以在開發的時候應該規劃訪問地址,保持最大靈活性。

延伸 · 閱讀

精彩推薦
  • WEB服務器寶塔面板負載狀態(load average)中的數據代表了什么?

    寶塔面板負載狀態(load average)中的數據代表了什么?

    寶塔面板是現在眾多站長選擇的服務器管理軟件,本文主要講解寶塔面板負載狀態(load average)中的數據代表了什么?有需要的朋友可以參考一下。...

    九天博客5792020-05-23
  • WEB服務器云服務器安裝多個web網站嗎

    云服務器安裝多個web網站嗎

    云服務器 安裝多個web網站 云服務器是一種基于云計算技術的 虛擬主機 服務,可以提供各種云計算基礎設施和服務。作為一個虛擬主機,云服務器可以用于...

    未知1302023-07-12
  • WEB服務器阿里云服務器部署web項目查看

    阿里云服務器部署web項目查看

    阿里 云服務器 部署web項目查看 隨著互聯網的發展,越來越多的企業開始將自己的業務擴展到線上平臺。為了滿足用戶的需求,企業需要部署自己的網站或...

    未知872023-09-07
  • WEB服務器WDCP控制面板升級mysql為5.7.11的方法

    WDCP控制面板升級mysql為5.7.11的方法

    本文主要講解在WDCP控制面板升級mysql為5.7.11的方法,有需要的朋友可以參考下...

    yuanxiaoping5322020-07-15
  • WEB服務器phpstudy默認不支持64位php的解決方法

    phpstudy默認不支持64位php的解決方法

    下面小編就為大家帶來一篇phpstudy默認不支持64位php的解決方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ...

    jingxian4702019-10-17
  • WEB服務器云端webdav服務器

    云端webdav服務器

    云端WebDAV服務器是一種在云端環境下提供WebDAV(Web Distributed Authoring and Versioning)協議服務的技術。WebDAV是一種HTTP擴展協議,它允許用戶通過Internet訪問分布...

    未知972023-05-25
  • WEB服務器如何將web項目部署到騰訊云服務器

    如何將web項目部署到騰訊云服務器

    如何將Web項目部署到騰訊 云服務器 摘要:本文將詳細介紹如何將Web項目部署到 騰訊云服務器 。包括選擇合適的云服務器實例,配置服務器環境,上傳代碼...

    未知1952023-06-24
  • WEB服務器湖北web云服務器價格

    湖北web云服務器價格

    湖北web 云服務器 價格 近年來,隨著互聯網技術的快速發展,云計算技術已經被廣泛應用于各行各業,對于企業來說,云計算技術已經成為提升企業信息化...

    未知1612023-06-07
主站蜘蛛池模板: 1024免费永久福利视频 | 免费观看在线永久免费xx视频 | jk制服蕾丝超短裙流白浆 | 日韩毛片大全免费高清 | 青草草产国视频 | 国产在线看片网站 | 国人精品视频在线观看 | 亚洲国产区中文在线观看 | jiizz亚洲护士厕所 | 欧美日韩精品一区二区三区视频在线 | 九九国产在线观看 | 亚洲视频在线一区二区三区 | 午夜一级免费视频 | 亚洲男女在线 | 超强台风免费观看完整版视频 | 精品视频在线观看免费 | 98pao强力打造高清免费 | 亚洲精品在线看 | 十六以下岁女子毛片免费 | 国色天香社区视频在线观看免费完整版 | 亚洲四虎永久在线播放 | 国内精品伊人久久大香线焦 | 被强上后我成瘾了小说 | 国产精品欧美日韩一区二区 | 国产精品久久久久久久久免费hd | 高h舔穴| 白丝萝莉喷水 | 精品欧美一区二区在线观看欧美熟 | 拍拍叫痛的无挡视频免费 | 国产成人看片免费视频观看 | 调教老师肉色丝袜的故事 | 4438全国最大成人网视频 | 爸爸的宝贝小说全文在线阅读 | 无码人妻丰满熟妇啪啪网不卡 | 麻豆天美精东果冻传媒在线 | 性欧美高清强烈性视频 | chinese老头和老太交hd | 国产伦精一区二区三区视频 | 国产日韩在线 | 成人精品在线 | 青青青国产在线观看 |