色综合网亚洲精品久久-精品国产国语对白久久免费-噼里啪啦国语电影大全-日本高清在线一区欧美-精品AV一区二区三区不卡-国产精品免费一区二区区-日本高清一区免费中文视频

【20年品牌建站】找北京網(wǎng)站建設(shè)公司就選新鴻儒/提供北京網(wǎng)站建設(shè)報價/北京網(wǎng)站制作/北京網(wǎng)站設(shè)計/網(wǎng)站開發(fā)、北京網(wǎng)站建設(shè)公司電話【400-024-1998】有優(yōu)惠哦!
簡體
繁體 簡體
我們的服務(wù)遍布中國

我們的服務(wù)遍布中國
乃至世界

新鴻儒所服務(wù)的品牌地域與城市
北京 天津 上海 廣州 深圳 香港 廈門 江蘇 浙江 山東
重慶 長沙 武漢 成都 西安 寧夏 麗江 青海 云南 烏魯木齊
黑龍江 內(nèi)蒙古 河北 ...
新鴻儒服務(wù)與合作的全球各地
美國 加拿大 德國 法國 英國 瑞士 意大利 荷蘭
印度 日本 韓國 ...

不論你的品牌在何處
我們都可以提供完善的服務(wù)與幫助

致電

400-024-1998

動靜分離,提高網(wǎng)頁訪問速度

發(fā)布時間:2018-02-12 瀏覽:616打印字號:

  動靜分離,那么什么動態(tài)的,什么是靜態(tài)的呢?


  訪問網(wǎng)頁的時候,我們總會發(fā)現(xiàn)瀏覽器會加載各種各樣的文件,有html文件,有css樣式表,有js腳本,還有圖片,還有流媒體等各種文件,這些其實就是靜態(tài)的文件,放在服務(wù)器上,無須動態(tài)生成的文件那么就是靜態(tài)文件。那么什么是動態(tài)文件呢?例如java寫的jsp文件,需要通過編譯器進行編譯成字節(jié)碼文件,然后在java虛擬機上運行,運行之后,返回給客戶端一個響應(yīng),有的時候,還需要到數(shù)據(jù)庫中取出數(shù)據(jù),那么這種需要經(jīng)過編譯的文件就稱之為動態(tài)文件。


  動態(tài)文件的處理比靜態(tài)文件的處理速度要慢N倍,慢在啥地方呢?首先,動態(tài)文件需要編譯,耗費時間,動態(tài)文件要去連接數(shù)據(jù)庫,耗費時間,動態(tài)文件需要組織成http響應(yīng),耗費時間,根據(jù)java的流程,那么就是根據(jù)url,找到j(luò)sp文件,將jsp文件轉(zhuǎn)換成servlet文件,然后形成類文件,然后在jvm上運行,jvm可能還要加載額外的類文件,然后組成成響應(yīng)返回給servlet,然后再返回給客戶端。


  在使用動靜分離的時候,一般使用的模型如下所示:

  在使用動靜分離的時候,需要將一些靜態(tài)的文件和動態(tài)的文件分離開來,從而使用nginx來處理靜態(tài)請求,而使用tomcat來處理動態(tài)的請求,從而會大大的提高處理速度,為啥?


  nginx和httpd是專門用來處理靜態(tài)文件的,效率極高,并且由nginx直接響應(yīng),減少了向后端轉(zhuǎn)發(fā)的過程;將動態(tài)內(nèi)容和靜態(tài)內(nèi)容進行分離,可以提高資源利用率,nginx的性能得到發(fā)揮,也讓tomcat不會那么繁忙,動態(tài)服務(wù)器機器耗費性能,例如在java中的各種方法區(qū)對象的回收,堆內(nèi)存的回收等。


  構(gòu)建動靜分離的環(huán)境


  要想構(gòu)建動靜分離的環(huán)境,那么就需要安裝nginx,安裝jdk,然后安裝tomcat,具體的步驟如下:

  編譯安裝nginx:
[root@mogilenode2 nginx-1.10.1]# ./configure –prefix=/usr/local/nginx –with-http_ssl_module –with-http_stub_status_module –with-pcre
[root@mogilenode2 nginx-1.10.1]# make && make install
[root@mogilenode2 ~]# /usr/local/nginx/sbin/nginx (啟動nginx)
[root@mogilenode2 ~]# netstat -tnlp|grep nginx(查看監(jiān)聽端口,并且使用瀏覽器訪問測試)
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      13933/nginx



  安裝jdk:
[root@mogilenode3 server]# rpm -ivh jdk-8u144-linux-x64.rpm
Preparing…                ########################################### [100%]
1:jdk1.8.0_144           ########################################### [100%]
Unpacking JAR files…
tools.jar…
plugin.jar…
javaws.jar…
deploy.jar…
rt.jar…
jsse.jar…
charsets.jar…
localedata.jar…


  配置java環(huán)境變量:

[root@mogilenode3 server]# echo “export JAVA_HOME=/usr/java/latest”>/etc/profile.d/java.sh
[root@mogilenode3 server]# echo “export PATH=$JAVA_HOME/bin:$PATH”>>/etc/profile.d/java.sh
[root@mogilenode3 server]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


  測試jdk及環(huán)境變量是否成功:



  安裝tomcat:
[root@mogilenode3 server]# tar -xf apache-tomcat-8.5.20.tar.gz -C /usr/local/
l[root@mogilenode3 server]# ln -sv /usr/local/apache-tomcat-8.5.20/ /usr/local/tomcat
`/usr/local/tomcat’ -> `/usr/local/apache-tomcat-8.5.20/’


  配置tomcat環(huán)境變量:

[root@mogilenode3 local]# vim /etc/profile.d/tomcat.sh
[root@mogilenode3 local]# cat !$
cat /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH


  測試tomcat是否安裝成功:

[root@mogilenode3 ~]# netstat -tnlp|grep java(注意瀏覽器訪問的時候,添加端口號來進行訪問)
tcp        0      0 :::8080                     :::*                        LISTEN      1125/java
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      1125/java
tcp        0      0 :::8009                     :::*                        LISTEN      1125/java


  創(chuàng)建動態(tài)文件
  根據(jù)java的目錄層次結(jié)構(gòu),寫一個基本的頁面,如下:
[root@mogilenode3 webapps]# mkdir kel
[root@mogilenode3 webapps]# cd kel
[root@mogilenode3 kel]# ls -l
total 0
[root@mogilenode3 kel]# mkdir {META-INF,WEB-INF,classes,lib}
[root@mogilenode3 kel]# vim index.jsp
[root@mogilenode3 kel]# cat index.jsp
<%@ page language=”java” %>
<%@ page import=”java.util.*” %>


JAVA PAGE


<% out.println(“Hello,World”); %>


[root@mogilenode3 kel]# ls -l
total 20
drwxr-xr-x 2 root root 4096 Sep 20 14:46 classes
-rw-r–r– 1 root root  201 Sep 20 14:46 index.jsp
drwxr-xr-x 2 root root 4096 Sep 20 14:46 lib
drwxr-xr-x 2 root root 4096 Sep 20 14:46 META-INF
drwxr-xr-x 2 root root 4096 Sep 20 14:46 WEB-INF


  修改tomcat的配置文件server.xml(添加一個虛擬主機,主機名為www.kel.com,,默認(rèn)路徑為webapps下面的kel目錄):





  測試訪問:

[root@mogilenode3 conf]# grep “www.kel.com” /etc/hosts (設(shè)置主機名解析)
192.168.1.238 www.kel.com
[root@mogilenode3 conf]# curl http://www.kel.com:8080 (使用curl進行訪問)


JAVA PAGE


Hello,World



  配置nginx

  配置主機名解析:
[root@mogilenode2 nginx]# grep “www.kel.com” /etc/hosts
192.168.1.237 www.kel.com
[root@mogilenode2 conf]# ls -l nginx.conf(修改nginx配置文件,將動態(tài)請求也就是文件后綴為jsp或者do的請求轉(zhuǎn)發(fā)到tomcat上,由于是虛擬主機,所以url中必須寫上主機名,靜態(tài)頁面在nginx上處理,靜態(tài)頁面在html路經(jīng)下)
-rw-r–r– 1 root root 2727 Sep 20 15:09 nginx.conf
server_name  www.kel.com;
#charset koi8-r;
#access_log  logs/host.access.log  main;
location / {
root   html;
index  index.html index.htm;
}
location ~* \.(jsp|do)$ {
proxy_pass http://www.kel.com:8080;
}
  上傳靜態(tài)文件到nginx的html目錄中,用來測試靜態(tài)文件的訪問:
[root@mogilenode2 nginx]# ls -l html/1.jpg
-rw-r–r– 1 root root 25854 Sep 20 15:13 html/1.jpg


  訪問nginx服務(wù)器測試靜態(tài)文件訪問:



  訪問nginx服務(wù)器,測試動態(tài)頁面訪問:




  總體上來說,動靜分離還是比較簡單的,主要讓前端的代理服務(wù)器直接響應(yīng)靜態(tài)請求,讓前端的代理服務(wù)器轉(zhuǎn)發(fā)動態(tài)請求到后端的tomcat服務(wù)器即可。
  注意上面的是實驗環(huán)境,對于tomcat的運行的用戶是直接的root用戶,在生產(chǎn)中,必須修改為其他不能登錄的用戶,例如tomcat用戶。


  (原文來自運維派)


現(xiàn)在就與新鴻儒客服交流

400-024-1998

您也可進行在線咨詢或預(yù)約項目顧問
我要預(yù)約
在線咨詢