lnmp架構(六)——nginx+tomcat+jdk實現訪問動態頁面

一、什麼是Tomcat

Tomcat 服務器是從Apache開發而來的一個免費的、開源的、輕量級的Web 應用服務器,在中小型系統和併發訪問用戶不多的場合下被普遍使用,是開發和調試JSP 程序的首選。當配置正確時,Apache 爲HTML頁面服務,而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。

在我看來,tomcat是一箇中間件,在B/S架構中,瀏覽器發出的http請求經過tpmcat中間件,轉發到最終的目的服務器上,響應消息再通過tomcat返回給瀏覽器。tomcat在此過程中開啓監聽端口監聽用戶的請求,解析用戶發來的http請求然後訪問到你指定的應用系統,然後你返回的頁面經過tomcat返回給用戶。

1.1 Apache,Nginx和Tomcat的區別

1)Apache

Apache支持模塊多,性能穩定,Apache本身是靜態解析,適合靜態HTML、圖片等,但可以通過擴展腳本、模塊等支持動態頁面等。
缺點:配置相對複雜,自身不支持動態頁面。
優點:相對於Tomcat服務器來說處理靜態文件是它的優勢,速度快。Apache是靜態解析,適合靜態HTML、圖片等。
(Apche可以支持PHPcgiperl,但是要使用Java的話,你需要Tomcat在Apache後臺支撐,將Java請求由Apache轉發給Tomcat處理。)

2)Tomcat:

Tomcat是應用(Java)服務器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認爲是Apache的擴展,但是可以獨立於Apache運行。
缺點:可以說Tomcat 只能用做java服務器,tomcat接受的最大併發數有限,連接數過多,會導致tomcat處於"殭屍"狀態,對後續的連接失去響應,需要結合nginx一起使用。
優點:動態解析容器,處理動態請求,是編譯JSP/Servlet的容器。

三個端口:

8005:關閉tomcat通信接口
8009:與其他http服務器通信接口,用於http服務器集合
8080:建立http連接 用,如瀏覽器訪問

3)Nginx
缺點:Nginx 只適合靜態和反向代理。
優點:負載均衡、反向代理、處理靜態文件優勢。Nginx 處理靜態請求的速度高於Apache。
Nginx有動態分離機制,靜態請求直接就可以通過Nginx處理,動態請求才轉發請求到後臺交由Tomcat進行處理。

Apache和 Nginx用於處理靜態資源, tomcat用來處理動態資源。Apache和Nginx相比,Nginx適合做前端服務器,適合做負載均衡。 一般情況下,使用的時候,都是 Apache+Tomcat一起使用或者 Nginx+tomcat一起使用。

參考

1.2 爲什麼要動靜態資源分離

靜態資源:指存儲在硬盤內的數據,固定的數據,不需要計算的數據。

  • 如:圖片、字體、js文件、css文件等等。在用戶訪問靜態資源時,服務器會直接將這些資源返回到用戶的計算機內。

動態資源:指需要服務器根據用戶的操作所返回的數據,以及存儲在數據庫的數據,經過一系列邏輯計算後返回的數據。

  • 如:請求日期,時間,明天的天氣等等會變動的數據。

Tomcat應用服務器是用來處理Servlet容器和JSP的,雖然它也可以處理HTML等等一系列靜態資源,但是效率不如Nginx;而且tomcat對Servlet容器和JSP的運算已經有很大壓力了,如果不分離會導致大量的性能浪費。我認爲在應用服務方面,要遵循一條原則——一個服務只做一件事。要做動態請求就專做動態請求,要做靜態請求就專做靜態請求,這樣才能提高性能。

二、實現訪問動態頁面

實驗環境

主機(版本:ip) 功用
虛擬機server1(rhel6.5:172.25.2.1) lnmp環境主機
真機(rhel7.3:172.25.2.250) 測試機

實驗原理
當用戶訪問動態資源時,將訪問轉到Tomcat應用服務器上,Tomcat將數據返回給Nginx,Nginx再返回給用戶。

1、安裝jdk和tomcat將其放至/usr/local目錄下

tar zxf jdk-7u79-linux-x64.tar.gz  -C /usr/local
tar zxf apache-tomcat-7.0.37.tar.gz  -C /usr/local

在這裏插入圖片描述在這裏插入圖片描述
2、創建軟鏈接

cd /usr/local
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.37/ tomcat

在這裏插入圖片描述
java可以tab補齊,java -version可查看java的版本

在這裏插入圖片描述

3、配置java的環境變量並使其生效

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export  PATH=$PATH:$JAVA_HOME/bin

source /etc/profile


在這裏插入圖片描述
在這裏插入圖片描述

驗證環境配置是否正確

    echo $PATH
    echo $CLASSPATH  # 類加載路徑
    echo $JAVA_HOME  # 命令的路徑,不用寫絕對路徑了)
     which javac      # 編譯
     which java       # 運行指令
   
   

在這裏插入圖片描述
javacjava我們可以通過一個簡單的腳本區別

在這裏插入圖片描述

在這裏插入圖片描述

4、打開tomcat,並訪問。

cd /usr/local/tomcat
bin/startup.sh

在這裏插入圖片描述在這裏插入圖片描述

此時去瀏覽器訪問172.25.2.1:8080

在這裏插入圖片描述
此時訪問172.25.2.1/index.jsp訪問不到,是因爲openresty開啓的80端口

在這裏插入圖片描述

5、編輯openresty的配置文件並重啓服務,這個實驗的配置文件是在上一個實驗的配置文件的基礎上修改的

[root@server1 tomcat]# cd /usr/local/openresty/nginx/conf/
[root@server1 conf]# vim nginx.conf 
 72         location ~ \.jsp$ {
 73             proxy_pass   http://127.0.0.1:8080;
 74         }
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx -s reload

此時再去訪問172.25.2.1/index.jsp就可以訪問到

在這裏插入圖片描述但這個頁面的動態的jsp效果不明顯,所以我們重新編輯測試頁。

6、再次編輯測試頁

[root@server1 conf]# cd /usr/local/tomcat/webapps/ROOT/
[root@server1 ROOT]# ls
asf-logo.png       bg-nav-item.png  favicon.ico        tomcat.gif        WEB-INF
asf-logo-wide.gif  bg-nav.png       index.jsp          tomcat.png
bg-button.png      bg-upper.png     RELEASE-NOTES.txt  tomcat-power.gif
bg-middle.png      build.xml        tomcat.css         tomcat.svg
[root@server1 ROOT]# vim test.jsp
server1-The time is: <%=new java.util.Date() %>

在這裏插入圖片描述在這裏插入圖片描述

當我們再次訪問時,時間會一直變化,實現了訪問動態頁面

在這裏插入圖片描述

在這裏插入圖片描述

當我們訪問的時候,時間會一直變化,實現了訪問動態頁面當我們訪問的時候,時間會一直變化,實現了訪問動態頁面當我們訪問的時候,時間會一直變化,實現了訪問動態頁面

發佈了127 篇原創文章 · 獲贊 26 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章