亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于NODEJS的反向代理方法、反向代理服務(wù)器及系統(tǒng)與流程

文檔序號:11843404閱讀:654來源:國知局
基于NODEJS的反向代理方法、反向代理服務(wù)器及系統(tǒng)與流程

本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于NODEJS(是一個Javascript運行環(huán)境(runtime))的反向代理方法、反向代理服務(wù)器及系統(tǒng)。



背景技術(shù):

反向代理指以代理服務(wù)器來接收internet(互聯(lián)網(wǎng))上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器。

目前現(xiàn)有的反向代理有:Nginx反向代理服務(wù),客戶向服務(wù)器發(fā)送請求時,由中間的代理服務(wù)器代理轉(zhuǎn)發(fā)到目標(biāo)服務(wù)器。當(dāng)服務(wù)器返回請求信息時,可以由代理服務(wù)器進(jìn)行捕獲同時可以截取返回信息中的內(nèi)容做相應(yīng)的處理,但需要對Nginx有所了解才可以對其具體的配置操作得當(dāng)。

現(xiàn)在有技術(shù)的缺點就是其配置不夠方便。需要有一定的服務(wù)器知識的人員才可以很好的對其進(jìn)行設(shè)置,提高了接入的門檻;其次對于前端開發(fā)人員來說,對其維護(hù)也是有一定的難度。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供一種基于NODEJS的反向代理方法、反向代理服務(wù)器及系統(tǒng),以對開發(fā)人員降低接入門檻,方便維護(hù)及監(jiān)管。

一方面,本發(fā)明實施例提供了一種基于NODEJS的反向代理方法,所述方法包括:

反向代理服務(wù)器利用NODEJS服務(wù)獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求;

讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;

利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址;

向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

另一方面,本發(fā)明實施例提供了一種基于NODEJS的反向代理服務(wù)器,所述反向代理服務(wù)器包括:

NODEJS服務(wù)單元,用于獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求;讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;

代理跳轉(zhuǎn)單元,用于利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址:

所述NODEJS服務(wù)單元,還用于向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

再一方面,本發(fā)明實施例還提供了一種基于NODEJS的反向代理系統(tǒng),所述系統(tǒng)包括:客戶端、反向代理服務(wù)器、內(nèi)容服務(wù)器,其中,所述反向代理服務(wù)器為上述基于NODEJS的反向代理服務(wù)器,所述系統(tǒng)還包括:

防火墻路由器,設(shè)置于所述反向代理服務(wù)器和所述內(nèi)容服務(wù)器之間,用于在所述反向代理服務(wù)器向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求之前,對所述反向代理服務(wù)器進(jìn)行認(rèn)證,并確認(rèn)認(rèn)證通過。

上述技術(shù)方案具有如下有益效果:由于該反向代理是基于NODEJS多并發(fā)服務(wù)為基礎(chǔ)進(jìn)行實施開發(fā),所以對于前端開發(fā)人員來說,接入門檻降低,同時可以對其進(jìn)行很好的維護(hù)及監(jiān)管。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實施例一種基于NODEJS的反向代理方法流程圖;

圖2為本發(fā)明實施例一種基于NODEJS的反向代理服務(wù)器結(jié)構(gòu)示意圖;

圖3為本發(fā)明實施例一種基于NODEJS的反向代理系統(tǒng)組成示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

如圖1所示,為本發(fā)明實施例一種基于NODEJS的反向代理方法流程圖,所述方法包括:

101、反向代理服務(wù)器利用NODEJS服務(wù)獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求;

102、讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;

103、利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址;

104、向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

優(yōu)選地,所述利用NODEJS服務(wù)獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求,包括:利用NODEJS服務(wù)的超文本傳輸協(xié)議HTTP功能模塊搭建的網(wǎng)頁WEB服務(wù),獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求。

優(yōu)選地,如接收到的反饋結(jié)果信息是錯誤信息,則先截取該錯誤信息,更改所述錯誤信息的標(biāo)頭中列出的所有統(tǒng)一資源定位符URL地址為所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址,然后轉(zhuǎn)發(fā)給所述客戶端。

優(yōu)選地,如接收到的反饋結(jié)果信息是錯誤信息,則再次讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址;向?qū)?yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

優(yōu)選地,所述向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求之前,還包括:設(shè)置于所述反向代理服務(wù)器和所述內(nèi)容服務(wù)器之間的防火墻路由器,對所述反向代理服務(wù)器進(jìn)行認(rèn)證,并確認(rèn)認(rèn)證通過。

對應(yīng)于上述方法實施例,如圖2所示,為本發(fā)明實施例一種基于NODEJS的反向代理服務(wù)器結(jié)構(gòu)示意圖,所述反向代理服務(wù)器包括:

NODEJS服務(wù)單元21,用于獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求;讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;

代理跳轉(zhuǎn)單元22,用于利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址:

所述NODEJS服務(wù)單元21,還用于向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

優(yōu)選地,所述NODEJS服務(wù)單元21,具體用于利用NODEJS服務(wù)的超文本傳輸協(xié)議HTTP功能模塊搭建的網(wǎng)頁WEB服務(wù),獲取客戶端發(fā)送的網(wǎng)絡(luò)服務(wù)訪問請求。

優(yōu)選地,所述NODEJS服務(wù)單元21,進(jìn)一步具體用于如接收到的反饋結(jié)果信息是錯誤信息,則先截取該錯誤信息,更改所述錯誤信息的標(biāo)頭中列出的所有統(tǒng)一資源定位符URL地址為所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址,然后轉(zhuǎn)發(fā)給所述客戶端。

優(yōu)選地,所述NODEJS服務(wù)單元21,進(jìn)一步具體用于如接收到的反饋結(jié)果信息是錯誤信息,則再次讀取所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址;所述代理跳轉(zhuǎn)單元,用于利用預(yù)置的主機地址和內(nèi)容服務(wù)器地址的對應(yīng)關(guān)系,進(jìn)行代理跳轉(zhuǎn),將所述網(wǎng)絡(luò)服務(wù)訪問請求中的請求訪問的目的主機地址替換為對應(yīng)的內(nèi)容服務(wù)器地址;所述NODEJS服務(wù)單元,用于向?qū)?yīng)的內(nèi)容服務(wù)器發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求,并接收反饋結(jié)果信息后,轉(zhuǎn)發(fā)給所述客戶端。

如圖3所示,為本發(fā)明實施例一種基于NODEJS的反向代理系統(tǒng)組成示意圖,所述系統(tǒng)包括:客戶端31、反向代理服務(wù)器32、內(nèi)容服務(wù)器33,其中,所述反向代理服務(wù)器32為上述基于NODEJS的反向代理服務(wù)器,所述系統(tǒng)還包括:防火墻路由器34,設(shè)置于所述反向代理服務(wù)器32和所述內(nèi)容服務(wù)器33之間,用于在所述反向代理服務(wù)器32向所述內(nèi)容服務(wù)器地址對應(yīng)的內(nèi)容服務(wù)器33發(fā)送替換地址后的網(wǎng)絡(luò)服務(wù)訪問請求之前,對所述反向代理服務(wù)器32進(jìn)行認(rèn)證,并確認(rèn)認(rèn)證通過。

本發(fā)明實施例上述技術(shù)方案具有如下有益效果:由于該反向代理是基于NODEJS多并發(fā)服務(wù)為基礎(chǔ)進(jìn)行實施開發(fā),所以對于前端開發(fā)人員來說,接入門檻降低,同時可以對其進(jìn)行很好的維護(hù)及監(jiān)管。

以下結(jié)合應(yīng)用實例對本發(fā)明實施例上述方案進(jìn)行詳細(xì)說明:

1、反向代理實現(xiàn)

當(dāng)客戶端向站點提出請求時,請求將轉(zhuǎn)到反向代理服務(wù)器。然后,反向代理服務(wù)器通過防火墻路由器中的特定通路,將客戶端的請求發(fā)送到內(nèi)容服務(wù)器。內(nèi)容服務(wù)器再通過該通道將結(jié)果回傳給反向代理服務(wù)器。反向代理服務(wù)器將檢索到的信息發(fā)送給客戶端,好像反向代理服務(wù)器就是實際的內(nèi)容服務(wù)器。如果內(nèi)容服務(wù)器返回錯誤消息,反向代理服務(wù)器會先行截取該消息并更改標(biāo)頭中列出的任何URL(Uniform Resoure Locator,統(tǒng)一資源定位符),然后再將消息發(fā)送給客戶端。如此可防止外部客戶端獲取內(nèi)部內(nèi)容服務(wù)器的重定向URL。

這樣反向代理服務(wù)器就在安全數(shù)據(jù)庫和可能的惡意攻擊之間提供了又一道屏障。與有權(quán)訪問整個數(shù)據(jù)庫的情況相對比,就算是僥幸攻擊成功,作惡者充其量也局限于訪問單個事務(wù)中所涉及的信息。未經(jīng)授權(quán)的用戶無法訪問到真正的內(nèi)容服務(wù)器,因為防火墻路由器通路只允許反向代理服務(wù)器有權(quán)進(jìn)行訪問。

可以配置防火墻路由器,通過認(rèn)證,使其只允許特定端口上的特定服務(wù)器有權(quán)通過防火墻路由器進(jìn)行訪問,而不允許其他任何機器進(jìn)出。

2、反向代理網(wǎng)絡(luò)傳輸模塊

網(wǎng)絡(luò)傳輸模塊支持HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議),HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版)等傳輸協(xié)議。通過利用NODEJS服務(wù)的HTTP功能模塊來搭建一個基于80端口的WEB(網(wǎng)頁)服務(wù),當(dāng)有客戶端對本服務(wù)進(jìn)行請求時可以通過讀取當(dāng)前請求的host(主機)地址對其進(jìn)行代理跳轉(zhuǎn);如果目標(biāo)服務(wù)器返回錯誤信息后可以再次由NODEJS進(jìn)行截取并做頁面的重定向操作。同時也可以利用其做負(fù)載均衡,websocket(網(wǎng)頁套接字)等相關(guān)工作。

反向代理服務(wù)器配置信息如下(JSON(JavaScript Object Notation,JavaScript對象表示法)格式):

與最接近的現(xiàn)有技術(shù)相比,本發(fā)明應(yīng)用實例由于是基于NODEJS,因此比較適合前端開發(fā)人員進(jìn)行開發(fā)及維護(hù);前端在開發(fā)過程中會經(jīng)常要處理網(wǎng)絡(luò)請求之類的信息,該反向代理服務(wù)有利于前端在開發(fā)過程中縮短調(diào)試時間;反向代理的配置過程也相對簡單,易于前端開發(fā)人員維護(hù)及編寫;只需要本地安裝NODEJS環(huán)境就可以執(zhí)行該反向代理功能。

應(yīng)該明白,公開的過程中的步驟的特定順序或?qū)哟问鞘纠苑椒ǖ膶嵗??;谠O(shè)計偏好,應(yīng)該理解,過程中的步驟的特定順序或?qū)哟慰梢栽诓幻撾x本公開的保護(hù)范圍的情況下得到重新安排。所附的方法權(quán)利要求以示例性的順序給出了各種步驟的要素,并且不是要限于所述的特定順序或?qū)哟巍?/p>

在上述的詳細(xì)描述中,各種特征一起組合在單個的實施方案中,以簡化本公開。不應(yīng)該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護(hù)的主題的實施方案需要比清楚地在每個權(quán)利要求中所陳述的特征更多的特征。相反,如所附的權(quán)利要求書所反映的那樣,本發(fā)明處于比所公開的單個實施方案的全部特征少的狀態(tài)。因此,所附的權(quán)利要求書特此清楚地被并入詳細(xì)描述中,其中每項權(quán)利要求獨自作為本發(fā)明單獨的優(yōu)選實施方案。

為使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面對所公開實施例進(jìn)行了描述。對于本領(lǐng)域技術(shù)人員來說;這些實施例的各種修改方式都是顯而易見的,并且本文定義的一股原理也可以在不脫離本公開的精神和保護(hù)范圍的基礎(chǔ)上適用于其它實施例。因此,本公開并不限于本文給出的實施例,而是與本申請公開的原理和新穎性特征的最廣范圍相一致。

上文的描述包括一個或多個實施例的舉例。當(dāng)然,為了描述上述實施例而描述部件或方法的所有可能的結(jié)合是不可能的,但是本領(lǐng)域普通技術(shù)人員應(yīng)該認(rèn)識到,各個實施例可以做進(jìn)一步的組合和排列。因此,本文中描述的實施例旨在涵蓋落入所附權(quán)利要求書的保護(hù)范圍內(nèi)的所有這樣的改變、修改和變型。此外,就說明書或權(quán)利要求書中使用的術(shù)語“包含”,該詞的涵蓋方式類似于術(shù)語“包括”,就如同“包括,”在權(quán)利要求中用作銜接詞所解釋的那樣。此外,使用在權(quán)利要求書的說明書中的任何一個術(shù)語“或者”是要表示“非排它性的或者”。

本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實施例列出的各種說明性邏輯塊(illustrative logical block),單元,和步驟可以通過電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說明性部件(illustrative components),單元和步驟己經(jīng)通用地描述了它們的功能。這樣的功能是通過硬件還是軟件來實現(xiàn)取決于特定的應(yīng)用和整個系統(tǒng)的設(shè)計要求。本領(lǐng)域技術(shù)人員可以對于每種特定的應(yīng)用,可以使用各種方法實現(xiàn)所述的功能,但這種實現(xiàn)不應(yīng)被理解為超出本發(fā)明實施例保護(hù)的范圍。

本發(fā)明實施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器,數(shù)字信號處理器,專用集成電路(ASIC),現(xiàn)場可編程門陣列或其它可編程邏輯裝置,離散門或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計來實現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機。處理器也可以通過計算裝置的組合來實現(xiàn),例如數(shù)字信號處理器和微處理器,多個微處理器,一個或多個微處理器聯(lián)合一個數(shù)字信號處理器核,或任何其它類似的配置來實現(xiàn)。

本發(fā)明實施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲于RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動磁盤、CD-ROM或本領(lǐng)域中其它任意形式的存儲媒介中。示例性地,存儲媒介可以與處理器連接,以使得處理器可以從存儲媒介中讀取信息,并可以向存儲媒介存寫信息??蛇x地,存儲媒介還可以集成到處理器中。處理器和存儲媒介可以設(shè)置于ASIC中,ASIC可以設(shè)置于用戶終端中??蛇x地,處理器和存儲媒介也可以設(shè)置于用戶終端中的不同的部件中。

在一個或多個示例性的設(shè)計中,本發(fā)明實施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來實現(xiàn)。如果在軟件中實現(xiàn),這些功能可以存儲與電腦可讀的媒介上,或以一個或多個指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲媒介和便于使得讓電腦程序從一個地方轉(zhuǎn)移到其它地方的通信媒介。存儲媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盤存儲、磁盤存儲或其它磁性存儲裝置,或其它任何可以用于承載或存儲以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個網(wǎng)站站點、服務(wù)器或其它遠(yuǎn)程資源通過一個同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(DSL)或以例如紅外、無線和微波等無線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、鐳射盤、光盤、DVD、軟盤和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。

以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而己,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1