Tomcat安裝與優化

来源:https://www.cnblogs.com/chenzhazha/archive/2018/11/02/9897558.html
-Advertisement-
Play Games

一.Tomcat介紹 Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 伺服器,可利用它響應HTML(標準通用 ...


一.Tomcat介紹

Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 伺服器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 伺服器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。

訣竅是,當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。不過,Tomcat處理靜態HTML的能力不如Apache伺服器。

二.Tomcat安裝

安裝前準備:

在安裝Tomcat之前必須先安裝JDK,JDK全稱是 Java Development Kit,是SUN公司免費提供的java語言的軟體開發工具包,其中包含Java虛擬機(JVM),編寫好的java源程式經過編譯可生產java位元組碼,只要安裝了JDK,就可以利用JVM解釋這些位元組碼文件,從而保證了Java的跨平臺性。

 

在平臺相容性方面,JDK作為解釋位元組碼文件並根據此調用操作系統的API實現對應功能的java虛擬機,與操作系統位數密切相關,因此存在不同類型的版本,Tomcat也具有上述特征,所以需要預先下載好JDK和Tomcat

 

JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/

tomcat下載地址:http://tomcat.apache.org

1.卸載系統自帶的openjdk並安裝jdk

[root@tomcat1 ~]# rm -rf $(which java)

[root@tomcat1 ~]# tar xf jdk-7u80-linux-x64.tar

[root@tomcat1 ~]# mv jdk1.7.0_80/ /usr/local/java

2.解壓安裝Tomcat

[root@tomcat1 ~]# tar xf apache-tomcat-8.5.20.tar.gz

[root@tomcat1 ~]# mv apache-tomcat-8.5.20 /usr/local/tomcat8

3.設置JAVA環境變數

[root@tomcat1 ~]# vim /etc/profile.d/java.sh

export JAVA_HOME="/usr/local/java"   ##設置java根目錄

export PATH=$PATH:$JAVA_HOME/bin:/usr/local/tomcat8/bin     #在PATH環境變數中添加java跟目錄的bin子目錄

[root@tomcat1 ~]# . /etc/profile     #將java.sh 腳本導入到環境變數,使其生效

 

4.運行 java -version 或者 javac -version 命令查看java版本

[root@tomcat1 ~]# java -version

java version "1.7.0_65"

Java(TM) SE Runtime Environment (build 1.7.0_65-b17)

Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

5.啟動Tomcat

[root@tomcat1 ~]# /usr/local/tomcat7/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat7

Using CATALINA_HOME:   /usr/local/tomcat7

Using CATALINA_TMPDIR: /usr/local/tomcat7/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar

Tomcat started.

 

Tomcat 預設運行在8080埠

[root@tomcat1 ~]# netstat -anpt |grep :8080

tcp        0      0 :::8080                     :::*                        LISTEN      3318/java  

 

6.關閉Tomcat

[root@tomcat1 ~]# /usr/local/tomcat7/bin/shutdown.sh

 

瀏覽器訪問測試 http://IP:

7.修改埠號

[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml

修改埠:

8080 - 9528

8005 - 9529

8009 - 9530

[root@tomcat1 ~]# /usr/local/tomcat8/bin/startup.sh

[root@tomcat1 ~]# netstat -anpt | grep java

tcp        0      0 0.0.0.0:9528            0.0.0.0:*               LISTEN      5625/java          

tcp        0      0 127.0.0.1:9529          0.0.0.0:*               LISTEN      5625/java          

tcp        0      0 0.0.0.0:9530            0.0.0.0:*               LISTEN      5625/java  

 

註意:關閉防火牆和selinux安全機制,如果是阿裡雲伺服器,控制台安全組需要放行TCP協議8080埠。

 

systemctl disable firewalld 永久關閉防火牆

systemctl stop firewalld  臨時關閉防火牆

setenforce 0  關閉Selinux

 

8.Tomcat 配置相關說明

/usr/local/tomcat           主目錄(安裝目錄)

bin                                             存放windows或linux平臺上啟動或關閉的Tomcat的腳本文件

conf                                   存放Tomcat的各種全局配置文件,其中最主要的是server.xml和web.xml

lib                                              存放Tomcat運行需要的庫文件(JARS)

logs                                   存放Tomcat執行時的LOG文件

webapps                                   Tomcat的主要Web發佈目錄(包括應用程式事例)htdocs(html php)

work                                          存放jsp編譯後產生的class文件

 

[root@tomcat1 ~]# ls /usr/local/tomcat/conf/

catalina.policy               許可權控制配置文件

catalina.properties        Tomcat屬性配置文件

context.xml                    上下文配置文件(selinux)

logging.properties         日誌log相關配置文件

server.xml                       主配置文件

tomcat-users.xml                   manager-gui管理用戶配置文件(Tomcat安裝後生成的管理界面,該文件可開啟訪問)

web.xml                                    Tomcat的servlet,servlet-mapping,filter,MIME等相關配置

 

server.xml  主要配置文件,可修改啟動埠,設置網站根目錄,虛擬主機,開啟https等功能。

三.Tomcat優化

1.禁用tomcat的AJP協議

[root@tomcat1 conf]# vim server.xml

註釋:

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

 

2.修改通訊模式BIO修改為NIO提高併發處理能力

#去掉註釋

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

3.啟用外部連接池

#去掉註釋並修改maxThreads:

<!--

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="300" minSpareThreads="4"/>

    -->

 

#去掉註釋並修改protocol:

  <Connector executor="tomcatThreadPool"

                 port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

                 connectionTimeout="20000"

                 redirectPort="8443" />

 

 

#刪除倆參數:

 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"/>  (這是刪除後的)

 

# <Connector executor="tomcatThreadPool"下麵添加:

               port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="1000"

               minSpareThreads="100"

               maxSpareThreads="200"

               acceptCount="1000"

               disableUploadTimeout="true"

              connectionTimeout="20000"

               URIEncoding="UTF-8"

               enableLookups="false"

               compression="on"

               compressionMinSize="2048"

               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"

               redirectPort="8443" />

4.JVM調優生產配置

編輯catalina.sh配置文件

[root@tomcat1 ~]# vim /usr/local/tomcat8/bin/catalina.sh

 

# OS specific support.  $var _must_ be set to either true or false.下麵添加

JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParallelGCThreads=8 -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-PrintGC -XX:-PrintGCDetails -XX:-PrintGCTimeStamps -Xloggc:../logs/gc.log"

 

參數

描述

-Xms

堆記憶體初始大小,單位m、g

-Xmx

堆記憶體最大允許大小,一般不要大於物理記憶體的80%

-XX:PermSize

非堆記憶體初始大小,一般應用設置初始化200m,最大1024m就夠了

-XX:MaxPermSize

非堆記憶體最大允許大小

-XX:+UseParallelGCThreads=8

並行收集器線程數,同時有多少個線程進行垃圾回收,一般與CPU數量相等

-XX:+UseParallelOldGC

指定老年代為並行收集

-XX:+UseConcMarkSweepGC

CMS收集器(併發收集器)

-XX:+UseCMSCompactAtFullCollection

開啟記憶體空間壓縮和整理,防止過多記憶體碎片

 

5.生產配置實例

#server.xml配置文件下:

[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml

 

# <Connector executor="tomcatThreadPool"下麵添加:

               port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="1000"

               minSpareThreads="100"

               maxSpareThreads="200"

               acceptCount="1000"

               disableUploadTimeout="true"

              connectionTimeout="20000"

               URIEncoding="UTF-8"

               enableLookups="false"

               compression="on"

               compressionMinSize="2048"

               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"

               redirectPort="8443" />

 

#參數說明:

org.apache.coyote.http11.Http11NioProtocol:調整工作模式為Nio

maxThreads:最大線程數,預設150。增大值避免隊列請求過多,導致響應緩慢。

minSpareThreads:最小空閑線程數。

maxSpareThreads:最大空閑線程數,如果超過這個值,會關閉無用的線程。

acceptCount:當處理請求超過此值時,將後來請求放到隊列中等待。

disableUploadTimeout:禁用上傳超時時間

connectionTimeout:連接超時,單位毫秒,0代表不限制

URIEncoding:URI地址編碼使用UTF-8

enableLookups:關閉dns解析,提高響應時間

compression:啟用壓縮功能

compressionMinSize:最小壓縮大小,單位Byte

compressableMimeType:壓縮的文件類型


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.概述 當你在嘗試一門新的語言時,可能不會過於關註程式出錯的問題, 但當真的去創造可用的代碼時,就不能再忽視代碼中的可能產生的錯誤和異常了。 鑒於各種各樣的原因,人們往往低估了語言對錯誤處理支持程度的重要性。 事實會表明,Scala 能夠很優雅的處理此類問題, 這一部分,我會介紹 Scala 基於 ...
  • 證明: ...
  • url映射的作用 根據Django的MTV模式,url的映射是根據用戶輸入或傳送而來的url路徑,來進行區分去執行相應的view函數來響應用戶的操作。 url映射的方式 Django項目的創建後,會自動創建和你項目名稱相同的全局文件包,urls.py就在其中。 urlpatterns = [ pat ...
  • javaServlet的構建,servlet,java前端和後端的通信 ...
  • "State of the Lambda" 這篇主要講 Labmbda 的背景和用法 譯文: "深入理解Java 8 Lambda(語言篇——lambda,方法引用,目標類型和預設方法)" "State of the Lambda: Libraries Edition" 這篇主要講 Stream 操 ...
  • 本節主要內容: 1. 函數參數--動態傳參 2. 名稱空間, 局部名稱空間, 全局名稱空間, 作⽤域, 載入順序. 3. 函數的嵌套 4. gloabal, nonlocal關鍵字 ⼀. 函數參數--動態傳參 之前我們說過了傳參, 如果我們需要給⼀個函數傳參, ⽽參數⼜是不確定的. 或者我給⼀個 函 ...
  • Hadoop大數據部署 一. 系統環境配置: 1. 關閉防火牆,selinux 關閉防火牆: 設置selinux為disable 2. 配置ntp時間伺服器 將IP地址換成可用的時間伺服器IP 3. 修改系統限制 4. 創建hadoop用戶 5. 配置hosts 6. 分發公鑰 保證某一個節點上都有 ...
  • fsck 檢查或者修複指定的文件系統,可以是設備名、掛載點,還可以是一個ext2的label,或者是一個UUID。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、語法 fsck [選項] –t systype device fsc ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...