頁面靜態化及自動部署

2021-10-03 09:53:04 字數 2485 閱讀 2750

主要內容:

mysql中資料發生變化的時候會觸發頁面靜態化,並將資料放到redis中

fastdfs上需要提前上傳乙個zip檔案,裡面包含html、css、js等

時序圖:

需要頁面靜態化的網頁往往是那些併發訪問量高但是又不經常改變的頁面,當我們在後端改變這些頁面的資料時,觸發頁面靜態化,頁面會自動在nginx所在節點指定位置生成,整個過程自動化。

/**

* 課程分類的頁面靜態化方法

*/private

void

pagestatic()

//3.往頁面靜態化服務模組傳送訊息,訊息攜帶rediskey與pagename

ajaxresult pageajaxresult = pagefeignclient.

pagestatic

(pagename, rediskeyconstant.cpurse_type_page_static);if

(!pageajaxresult.

issuccess()

)}

頁面靜態化單獨有乙個模組,其他模組會去用feign呼叫這個模組來實現頁面靜態化

@override

public

void

pagestatic

(string pagename, string rediskey)

throws exception

string stringresult = result.

getresultobj()

.tostring()

; map model = json.

parseobject

(stringresult, map.

class);

model.

put(

"staticroot"

, unzippath)

;//6.資料與模板合併生成html,注意模板與html這兩個檔案都要放在unzippath下面

string vmpath = unzippath + pagename +

".vm"

; string htmlpath = unzippath + pagename +

".html"

; velocityutils.

staticbytemplate

(model, vmpath, htmlpath)

;//7.合併完成後把html上傳到fastdfs , 拿到上傳路徑

file htmlfile =

newfile

(htmlpath)

;byte

htmlbytes = filecopyutils.

copytobytearray

(htmlfile)

; ajaxresult ajaxresult = fastdfsfeignclient.

uploadhtml

(htmlbytes);if

(!ajaxresult.

issuccess()

)//8.整合mq,往mq傳送訊息

string htmldownloadpath = ajaxresult.

getresultobj()

.tostring()

; string nginxphysicalpath = pager.

getphysicalpath()

; hashmap

msgmap =

newhashmap

<

>()

; msgmap.

put(

"htmldownloadpath"

, htmldownloadpath)

; msgmap.

put(

"nginxphysicalpath"

, nginxphysicalpath)

;selectsitenamebysiteid

(pager.

getsiteid()

);rabbittemplate.

convertandsend

(rabbitconstant.exchange_static_page, routingkey, json.

tojsonstring

(msgmap));

}

注意rabbitmq中要先有這個交換機。

rabbitmq接收後將訊息取出進行處理

//監聽頁面靜態化的佇列

@rabbitlistener

(queues =

)public

void

receiveemail

(string msg, message message, channel channel)

throws ioexception

}

PHP實現頁面靜態化 純靜態化及偽靜態化

php靜態化分為 純靜態化 和 偽靜態化 純靜態化又分為 區域性靜態化 和 完全靜態化 純靜態化 是把php生成的動態頁面儲存成靜態的html檔案,使用者訪問該靜態頁面,而不是使用者每一次訪問都重新生成一張相同的網頁,優點就是減小伺服器開銷,區域性靜態化 是生成的靜態檔案中,有區域性的資料還是通過a...

Nginx 部署靜態頁面

在前後端分離的專案中,前端經過編譯生成的檔案中,往往只包含乙個index.html入口檔案。可以利用nginx進行簡單配置就可以實現在部署到伺服器端。如果是nodejs的專案可以利用pm2進行部署,如果是egg的專案可以利用egg的工具egg scripts進行部署通過yum安裝nginx的配置檔案...

頁面靜態化

隨著 的內容的增多和使用者訪問量的增多,無可避免的是 載入會越來越慢,受限於頻寬和伺服器同一時間的請求次數的限制,我們往往需要在此時對我們的 進行 優化和伺服器配置的優化。一般情況下會從以下方面來做優化 什麼是靜態化?純靜態 將php程式生成靜態的html檔案,儲存到伺服器的磁碟中。客戶端訪問的時候...