一種多語種網站的靜態(tài)頁面生成方法
【專利摘要】本發(fā)明提出一種多語種網站的靜態(tài)頁面生成方法,該方法包括以下步驟:a,網站獲取靜態(tài)頁面的配置文件、欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源,所述配置文件的內容包括靜態(tài)頁面定時生成時間;b,網站執(zhí)行靜態(tài)頁面生成程序,所述程序根據所述靜態(tài)頁面定時生成時間輪循啟動線程任務,所述線程根據欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源生成各個語種的靜態(tài)頁面;c,用戶瀏覽網站后選擇語種,網站快速切換至相應語種的靜態(tài)頁面。本發(fā)明同時支持多國語言靜態(tài)化處理,可靈活配置語種,省掉了服務器處理時間和調用數據庫的時間,訪問速度比一般動態(tài)網站快10-20倍。
【專利說明】一種多語種網站的靜態(tài)頁面生成方法
【技術領域】
[0001]本發(fā)明涉及動態(tài)網頁靜態(tài)化領域,尤其涉及一種多語種網站的靜態(tài)頁面生成方法。
【背景技術】
[0002]動態(tài)網頁的技術是從幾年前興起,也是BS系統(tǒng)的核心技術。為了加快頁面打開瀏覽速度,有利于搜索引擎優(yōu)化SE0,減輕服務器負擔,發(fā)展出了一系列的動態(tài)頁面內容的靜態(tài)化技術,生成后的靜態(tài)頁面訪問路徑有利于搜索引擎的抓取和收錄,并且在各大搜索引擎中(例:百度、Google)靜態(tài)頁面路徑的排名權重要高于動態(tài)頁面路徑。已知的動態(tài)網頁的靜態(tài)化方法有以下幾種:
[0003]方法一:使用現(xiàn)成的插件,比如:ISAPI_Rewrite、IISRewrite、Apache HTTP 服務器的mocLrewrite等,它們都是基于正則表達式解析器開發(fā)的重寫引擎。它們的使用方法查看它們自帶的幫助即可。
[0004]方法二:自己寫代碼實現(xiàn)動態(tài)網頁靜態(tài)化,方法也有好幾種:1、創(chuàng)建FSO對象,利用此對象將所需的內容動態(tài)創(chuàng)建到文件中生成HTML頁面;2、利用模板技術,將模板中特殊代碼的值替換為從表單或是數據庫字段中接受過來的值生成HTML文件;3、使用Server.Transfer轉換技術。
[0005]以上列舉的網站的動態(tài)內容靜態(tài)化方案是不完善的,不能滿足對多國語言的支持。同時帶來了一些新的問題,例如:內容欄目過多,對應的服務程序也會很多,導致程序的維護工作量大。前端開發(fā)人員不僅要去做頁面,也要考慮后臺的服務程序結構,給他們增加了不必要的開發(fā)難度,降低了開發(fā)效率。
【發(fā)明內容】
[0006]本發(fā)明的目的在于提供一種全方位、簡易、快捷的方案,不僅能夠解決多國語言動態(tài)內容靜態(tài)頁面生成,同時可以靈活配置語種,無需復雜的編碼即可對網站內容進行拓展,并且加快了頁面打開瀏覽速度,尤其適用于各大中小企業(yè)門戶網站。該方法包括以下步驟:
[0007]a,網站獲取靜態(tài)頁面的配置文件、欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源,所述配置文件的內容包括靜態(tài)頁面定時生成時間;
[0008]b,網站執(zhí)行靜態(tài)頁面生成程序,所述程序根據所述靜態(tài)頁面定時生成時間輪循啟動線程任務,所述線程根據欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源生成各個語種的靜態(tài)頁面;
[0009]C,用戶瀏覽網站后選擇語種,網站快速切換至相應語種的靜態(tài)頁面。
[0010]優(yōu)選的,步驟a中,所述配置文件的內容還包括默認語種;步驟c中,當某個語種資源不存在時,網站切換至默認語種的靜態(tài)頁面。
[0011]上述方法的所述網站可以包括后臺管理服務器、靜態(tài)頁面生成服務器、WEB服務器和數據庫,后臺管理服務器用于將管理員配置的配置文件內容提交到靜態(tài)頁面生成服務器;靜態(tài)頁面生成服務器用于從數據庫中獲取欄目靜態(tài)內容模板文件、欄目動態(tài)內容、語種資源,執(zhí)行靜態(tài)頁面生成程序,將生成的靜態(tài)頁面?zhèn)鬟f給WEB服務器;WEB服務器用于保存靜態(tài)頁面,根據用戶選擇的語種快速切換至相應語種的靜態(tài)頁面。
[0012]優(yōu)選的,靜態(tài)頁面生成服務器執(zhí)行靜態(tài)頁面生成程序時,除了根據所述靜態(tài)頁面定時生成時間啟動線程任務外,還根據WEB服務器前臺頁面觸發(fā)或者后臺管理服務器觸發(fā)來啟動線程任務。
[0013]優(yōu)選的,靜態(tài)頁面生成服務器采用freemarker模板生成方式,最終生成html格式的靜態(tài)頁面。
[0014]優(yōu)選的,WEB服務器中靜態(tài)頁面采用分塊存儲的方式,然后利用html include方式進行整合。
[0015]優(yōu)選的,WEB服務器可以有多個,靜態(tài)頁面生成服務器根據預先設定好的配置,將生成的靜態(tài)頁面分發(fā)到指定的WEB服務器。進一步的,所述網站還包括后臺內容管理系統(tǒng),用于記錄靜態(tài)頁面在多個WEB服務器中的部署位置,標記靜態(tài)頁面的有效狀態(tài)。所述多個WEB服務器還可以采用開源apache負載均衡的訪問架構。
[0016]本發(fā)明所提供的多語種網站的靜態(tài)頁面自動生成方法,具有以下優(yōu)點:1,可靈活配置語種,不需額外的編碼;2,同時支持多國語言靜態(tài)化處理,系統(tǒng)監(jiān)測語種資源,支持對每個語種的靜態(tài)頁面生成,同樣不需要額外編碼;3,對于語種拓展,只需要翻譯相應資源文件,不需要任何額外的編碼工作,大大降低了維護成本,二次開發(fā)維護簡易;4,省掉了服務器處理時間和調用數據庫的時間,訪問速度比一般動態(tài)網站快10-20倍;5,不用調用數據庫服務器端的CPU調用大大減少增加服務器的性能。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明實施例的靜態(tài)頁面自動生成結構示意圖;
[0018]圖2是本發(fā)明實施例的靜態(tài)頁面生成程序的線程啟動示意圖。
【具體實施方式】
[0019]下面結合附圖對本發(fā)明的【具體實施方式】作詳細的說明。
[0020]本實施例以一個多語種門戶網站為例,其靜態(tài)頁面自動生成結構如圖1所示,包括一個后臺管理服務器、一個靜態(tài)頁面生成服務器、多個WEB服務器和多個數據庫。生成靜態(tài)頁面的方法步驟如下:
[0021](I)管理員在后臺管理服務器中配置靜態(tài)頁面定時生成時間、默認語種等,后臺管理服務器再將配置文件提交到靜態(tài)頁面生成服務器;
[0022](2)靜態(tài)頁面生成服務器從數據庫中獲取最新欄目動態(tài)內容,根據語種資源properties文件、欄目靜態(tài)內容模板ftl文件進行填充,語種資源是各個語種對相應內容的翻譯。
[0023](3)靜態(tài)頁面生成服務器中設有一個靜態(tài)頁面生成服務程序,用于專門根據欄目模板文件和語種資源生成網站某個頻道或欄目的頁面。該程序通過動作指令來觸發(fā)啟動線程任務,如圖2所示,當頁面數據有變化時,會根據業(yè)務規(guī)則從某個地方發(fā)出一個動作指令。動作指令來源大致可以分為三種:WEB服務器前臺頁面觸發(fā)、后臺管理服務器觸發(fā)、后臺自動定時觸發(fā),后臺自動定時觸發(fā)是由配置文件中的靜態(tài)頁面定時生成時間決定的。
[0024]靜態(tài)頁面生成服務器采用freemarker模板生成方式,最終生成html格式的靜態(tài)頁面。采用這樣的生成方式好處在于,某些頁面上的部分可能會頻繁更新和生成,但其它地方不變,或者某個部分是所有頁面通用的(比如頁頭和頁腳),性能比較高。
[0025](4)靜態(tài)頁面生成服務器采用一個獨立的數據分發(fā)傳輸系統(tǒng),該系統(tǒng)負責根據預先設定好的配置,把生成的靜態(tài)頁面數據分發(fā)到指定的WEB服務器上進行保存。
[0026]為了使WEB服務器在隨著網站訪問量的上升的同時做到水平擴展,加快用戶請求的處理速度,本實施例的多個WEB服務器采用開源apache負載均衡的訪問架構。Apache負載均衡有三種不同的配置方式,分別是:輪詢均衡策略的配置、按權重分配均衡策略配置、權重請求響應負載均衡策略配置。第二種是以請求數作為權重來負載均衡的,第三種是以流量為權重負載均衡的,這是最大的區(qū)別。本實施例采用第三種配置方式,進入Apache的conf目錄,打開httpd.conf文件,在文件的末尾加入:
[0027]ProxyPass/balancer://proxy/lbmethod=bytraffic# 注意這里以 〃/〃 結尾
[0028]〈Proxy balancer://proxy〉
[0029]BalancerMember http://192.168.0.1:8080/loadfactor=3
[0030]BalancerMember http://192.168.0.2:8080/loadfactor=l
[0031]〈/Proxy〉
[0032]參數“l(fā)bmethod=bytraffic”表示服務器負載請求和響應的字節(jié)數,處理字節(jié)數的多少是以權值的方式來表示的。“ 1adfactor”表示服務器處理負載請求和響應字節(jié)數的權值,該值默認為1,可以將該值設置在I到100的任何值。
[0033]根據以上配置本實施例是這樣進行均衡負載的:假設Apache接收到http://xxxx/xxx 請求,將請求轉發(fā)給服務器,如果 BalancerMember 為 http://192.168.0.1:8080的服務器負載到這個請求,那么它處理請求和響應的字節(jié)數是BalancerMember為http://192.168.0.2:8080服務器的3倍,這樣就把處理業(yè)務邏輯的壓力均衡的分配到了各臺WEB服務器。
[0034]對于復雜的頁面,WEB服務器中靜態(tài)頁面采用分塊存儲的方式,這樣能保證生成時目標小,開銷小,提高重用性,然后再藉由SSKshtml include)方式進行整合。之所以采取這樣的方案,而不采用Dottext的整合方式,是因為如果采用Dottext的方式,就必須走IIS和.Net的管道,而據測試,經過管道和直接返回html性能有非常大的差異,而使用SSI,在性能上是一個折中。
[0035]總之,本實施例的WEB服務器通過負載均衡訪問的方式,使得網絡10效率降低;而且靜態(tài)頁面采用分塊存儲的方式,使得占用的磁盤空間很小。
[0036](5)用戶瀏覽網站后選擇語種,WEB服務器根據用戶選擇的語種快速切換至相應語種的靜態(tài)頁面。
[0037]本實施例的門戶網站是一個大型網站,生成的頁面數據會非常多,管理這些頁面文件又是一個問題。例如有的頁面被刪除了,而已經生成的頁面數據還會存在各個WEB服務器上。本實施例還通過一個后臺內容管理系統(tǒng)(CMS)記錄這些頁面文件的部署位置(相對于WEB服務器的部署目錄),標記刪除或直接刪除(即有效狀態(tài)),以便今后統(tǒng)一管理。本實施例的后臺內容管理系統(tǒng)集成部署在后臺管理服務器中,也可以視實際情況單獨部署在一臺新的服務器上。
[0038]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種多語種網站的靜態(tài)頁面生成方法,其特征在于,該方法包括以下步驟: a,網站獲取靜態(tài)頁面的配置文件、欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源,所述配置文件的內容包括靜態(tài)頁面定時生成時間; b,網站執(zhí)行靜態(tài)頁面生成程序,所述程序根據所述靜態(tài)頁面定時生成時間輪循啟動線程任務,所述線程根據欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源生成各個語種的靜態(tài)頁面; C,用戶瀏覽網站后選擇語種,網站快速切換至相應語種的靜態(tài)頁面。
2.根據權利要求1的方法,其特征在于:步驟a中,所述配置文件的內容還包括默認語種;步驟c中,當某個語種資源不存在時,網站切換至默認語種的靜態(tài)頁面。
3.根據權利要求1的方法,其特征在于,所述網站包括后臺管理服務器、靜態(tài)頁面生成服務器、WEB服務器和數據庫, 后臺管理服務器用于將管理員配置的配置文件內容提交到靜態(tài)頁面生成服務器; 靜態(tài)頁面生成服務器用于從數據庫中獲取欄目靜態(tài)內容模板文件、欄目動態(tài)內容和語種資源,執(zhí)行靜態(tài)頁面生成程序,將生成的靜態(tài)頁面?zhèn)鬟f給WEB服務器; WEB服務器用于保存靜態(tài)頁面,根據用戶選擇的語種快速切換至相應語種的靜態(tài)頁面。
4.根據權利要求3的方法,其特征在于,靜態(tài)頁面生成服務器執(zhí)行靜態(tài)頁面生成程序時,除了根據所述靜態(tài)頁面定時生成時間啟動線程任務外,還根據WEB服務器前臺頁面觸發(fā)或者后臺管理服務器觸發(fā)來啟動線程任務。
5.根據權利要求3的方法,其特征在于,靜態(tài)頁面生成服務器采用freemarker模板生成方式,最終生成html格式的靜態(tài)頁面。
6.根據權利要求3的方法,其特征在于,WEB服務器中靜態(tài)頁面采用分塊存儲的方式,然后利用html include方式進行整合。
7.根據權利要求3的方法,其特征在于,WEB服務器有多個,靜態(tài)頁面生成服務器根據預先設定好的配置,將生成的靜態(tài)頁面分發(fā)到指定的WEB服務器。
8.根據權利要求7的方法,其特征在于,所述網站還包括后臺內容管理系統(tǒng),用于記錄靜態(tài)頁面在多個WEB服務器中的部署位置,標記靜態(tài)頁面的有效狀態(tài)。
9.根據權利要求7的方法,其特征在于,所述多個WEB服務器采用開源apache負載均衡的訪問架構。
【文檔編號】G06F17/30GK104182425SQ201310203180
【公開日】2014年12月3日 申請日期:2013年5月28日 優(yōu)先權日:2013年5月28日
【發(fā)明者】鄧勇 申請人:北京信威通信技術股份有限公司, 深圳信威通信技術有限公司