1. 程式人生 > 資訊 >Realme C35 手機海外上市:搭載展銳 T616 晶片,5000mAh 大電池

Realme C35 手機海外上市:搭載展銳 T616 晶片,5000mAh 大電池

Tomcat部署及優化

一、Tomcat

1.概述

Tomcat伺服器是一個免費的開放原始碼的Web應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP程式的首選。Tomcat雖然和Apache或者Nginx這些Web伺服器一樣,具有處理HTML頁面的功能,然而由於其處理靜態HTML的能力遠不及Apache或者Nginx,所以Tomcat通常是作為一個Servlet和JSP容器,單獨執行在後端。

2.Tomcat 核心元件

Tomcat 是 Apache 下的一個子專案,它具備 Web伺服器的所有功能(WEB容器嵌入Servlet-》動態請求),不僅可以監聽接受請求並響應靜態資源,而且可以在後端執行特定規範的 Java 程式碼 Servlet,同時將執行的結果以 HTML 程式碼的形式寫回客戶端。

1)Web 容器:完成 Web 伺服器的功能HTTP HTTPS請求的接受和響應。
2)Servlet 容器:由名稱為 catalina的指令碼來處理 Servlet 程式碼(具體的一個任務,從資料庫中拿取資料給與前端)。
3)JSP 容器:用於將 JSP 動態網頁翻譯成 Servlet 程式碼 index.html index.php index.jsp。

3.Tomcat處理請求過程

使用者請求——》service(支撐tomcat的服務程序)
1)使用者點選網頁內容,請求被髮送到本機埠8080,被在那裡監聽的Coyote(Tomcat 聯結器框架/基礎環境)  HTTP/1.1 Connector(聯結器,用於對接請求)獲得。
2)接受請求之後交給container(容器)中的engine進行處理,engine(引擎)是做為容器執行的動力核心
3)基於引擎支撐,容器中會跑很多host虛擬主機/專案,這些虛擬主機中也會有很多context(當前程式所處的環境),此處的context功能可以理解為:將JAVA前端和JAVA後端連線的展示的樞紐
4)Servlet處理完後會返回給context
5)context返回給engine引擎
6)engine返回給埠
7)埠最後將頁面展現給使用者

二,tomcat部署

1、關閉防火牆,將安裝 Tomcat 所需軟體包傳到/opt目錄下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2、安裝JDK
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm  #可以檢視指定檔案的檔案列表
rpm -ivh jdk-8u201-linux-x64.rpm   #安裝
java -version

3、設定JDK環境變數
vim /etc/profile.d/java.sh 
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64                        #輸出定義java的工作目錄
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar	 #輸出指定Java所需的類檔案 		
export PATH=$JAVA_HOME/bin:$PATH                                     #輸出重新定義環境變數,$PATH一定要放在$JAVA_HOME的後面,讓系統先讀取工作目錄中的版本資訊

source /etc/profile.d/java.sh
java -version

echo $PATH        #輸出現在的環境變數,可以看見我們安裝的java路徑在最前面,如果在後面,用的javaj還是系統自帶的
/usr/java/jdk1.8.0_201-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
 which java        #想再次檢視java命令的絕對路徑,現在是我們安裝的java路徑了
/usr/java/jdk1.8.0_201-amd64/bin/java

到這裡就設定好了,我們也可以編寫一個java指令碼來驗證安裝

vim abc.java
#編寫一個java程式,輸出“hello world!”
public class abc {
  public static void main(String[] args){
    System.out.println("Hello World!");
  }
}

#檢測JDK環境是否設定成功
javac abc.java
java abc

4、安裝啟動Tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat

##啟動tomcat##
/usr/local/tomcat/bin/startup.sh
netstat -natp | grep  8080

#使用瀏覽器訪問Tomcat的主頁 
http://192.168.10.10:8080

5、優化Tomcat啟動速度
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
#修改117行;##/dev/random和/dev/urandom都是偽終端,但是/dev/urandom提供的資料流更快
securerandom.source=file:/dev/urandom

#建立一個軟連線,將tomcat的命令放入/usr/local/bin
ln -s /usr/local/tomcat/bin/* /usr/local/bin/
#重啟Tomcat
shutdown.sh
startup.sh

三、Tomcat 虛擬主機配置

很多時候公司會有多個專案需要執行,那麼肯定不可能是一臺伺服器上執行多個Tomcat服務,這樣會消耗太多的系統資源。此時,就需要使用到 Tomcat 虛擬主機。例如現在新增兩個域名 www.abc.com 和 www.def.com,希望通過這兩個域名訪問到不同的專案內容。

1、建立 ceshi 和 cs 專案目錄和檔案
新增地址對映
vim /etc/hosts
192.168.10.10 www.ceshi.com www.mcscom

mkdir /usr/local/tomcat/webapps/ceshi
mkdir /usr/local/tomcat/webapps/cs
echo "this is ceshi page\!" > /usr/local/tomcat/webapps/ceshi/index.jsp
echo "this is cs page\!" > /usr/local/tomcat/webapps/cs/index.jsp

2、修改 Tomcat 主配置檔案
vim /usr/local/tomcat/conf/server.xml 
#搜尋/Host name,檢視Host(虛擬主機)及其屬性
      </Host>
      <Host name="www.ceshi.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/ceshi" path="" reloadable="true" />
       </Host>
       <Host name="www.cs.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/cs" path="" reloadable="true" />
       </Host>
#配置詳解
Host name :主機名
appBase : Tomcat程式工作目錄,相對路徑為webapps,絕對路徑為/usr/local/tomcat/webapps
unpackWARs :tomcat在webapps資料夾中發現war包檔案時,是否自動將其解壓
autoDeploy :設為true,則web.xml發生變化時,tomcat自動重新部署程式。實現這個功能必需允許後臺處理
xmlValidation :是否開啟對XML檔案的驗證
xmlNamespaceAware :是否啟用xml名稱空間,如果設定該值與xmlValidation均為true,表示對web.xml檔案執行有效性檢驗

docBase : WEB應用的目錄(本地路徑)
path:設定訪問的URI為WEB應用的根目錄(URL路徑),""表示預設,載入系統中自帶的類(class檔案)
reloadable :是否在程式有改動時重新載入

#關閉、開啟
shutdown.sh 
sleep 5 - 10		#Shell指令碼需要注意
startup.sh 

3、客戶端瀏覽器訪問驗證
echo "192.168.10.10 www.ceshi.com www.cs.com" >> /etc/hosts

瀏覽器訪問 http://www.ceshi.com:8080 頁面顯示 this is ceshi page!
瀏覽器訪問 http://www.cs.com:8080 頁面顯示 this is cs page!

四、Tomcat 優化

Tomcat預設安裝下的預設配置並不適合生產環境,它可能會頻繁出現假死現象需要重啟,只有通過不斷壓測優化才能讓它最高效率穩定的執行。優化主要包括三方面,分別為作業系統優化(核心引數優化),Tomcat配置檔案引數優化,Java虛擬機器(JVM)調優。

1.常用引數

2、優化配置

vim /usr/local/tomcat/conf/server.xml
......
<Connector port="8080" protocol="HTTP/11.1" 
connectionTimeout="20000" 
redirectPort="8443" 

71行插入
minSpareThreads="50" 
enableLookups="false" 
disableUploadTimeout="true" 
acceptCount="300" 
maxThreads="500" 
processorCache="500"
URIEncoding="UTF-8" 
compression="on" 
compressionMinSize="2048" 
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/>