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

基于http代理服務(wù)器的無(wú)感知定向代理方法及系統(tǒng)與流程

文檔序號(hào):11710091閱讀:217來(lái)源:國(guó)知局
基于http代理服務(wù)器的無(wú)感知定向代理方法及系統(tǒng)與流程

本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種基于http代理服務(wù)器的無(wú)感知定向代理方法及系統(tǒng)。



背景技術(shù):

在傳統(tǒng)軟件進(jìn)行saas(英文全稱(chēng):software-as-a-service,中文釋義為:軟件即服務(wù))化的過(guò)程中,存在這樣的場(chǎng)景:后端系統(tǒng)存在很多具有相同服務(wù),但提供給不同用戶(hù)使用的系統(tǒng),不同的用戶(hù)在登陸用戶(hù)管理系統(tǒng)后,需要將用戶(hù)請(qǐng)求轉(zhuǎn)發(fā)到指定后端業(yè)務(wù)系統(tǒng)的server中去。

傳統(tǒng)的做法是:每個(gè)定向的后端服務(wù)使用一個(gè)二級(jí)域名進(jìn)行單獨(dú)代理,以便代理服務(wù)器(如nginx、squid、apachetrafficserver等)區(qū)分upstream。

這樣的做法,在每新增一個(gè)后端服務(wù)的時(shí)候需要新增一個(gè)二級(jí)域名代理和一個(gè)服務(wù)器配置,而域名的改變非常影響用戶(hù)的使用體驗(yàn)。



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

針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種基于http代理服務(wù)器的無(wú)感知定向代理方法及系統(tǒng)。

第一方面,本發(fā)明提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法,包括:

接收客戶(hù)端發(fā)送的由用戶(hù)發(fā)起的訪(fǎng)問(wèn)請(qǐng)求;

根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí);

在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑;

按照所述路徑將所述訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述后端服務(wù)器。

可選的,在所述在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑的步驟前,還包括:

預(yù)先通過(guò)配置定向upstream建立各前端標(biāo)識(shí)與各后端服務(wù)器的路徑的路由表,其中,各后端服務(wù)器屬于同一個(gè)服務(wù)器集群。

可選的,在所述服務(wù)器集群中新增后端服務(wù)器后,通過(guò)在所述路由表中添加新增的所述后端服務(wù)器的路徑和對(duì)應(yīng)的前端標(biāo)識(shí),啟用新增的所述后端服務(wù)器。

可選的,所述根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí),包括:

根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求判斷所述用戶(hù)是否為新注冊(cè)用戶(hù);

若是,則根據(jù)當(dāng)前服務(wù)器集群中各后端服務(wù)器的負(fù)載情況,從所述服務(wù)器集群中選擇一臺(tái)后端服務(wù)器分配給所述用戶(hù),根據(jù)預(yù)設(shè)的路由表確定選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí),并將選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí)寫(xiě)入cookies,然后將所述cookies發(fā)送至所述客戶(hù)端;

若否,則從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

可選的,在所述從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)的步驟后,還包括:

判斷從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)與從所述客戶(hù)端中存儲(chǔ)的cookies中解析獲得的前端標(biāo)識(shí)是否一致;

若否,則將從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)寫(xiě)入到所述cookies,然后將所述cookies發(fā)送至所述客戶(hù)端。

第二方面,本發(fā)明提供一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),包括:

訪(fǎng)問(wèn)請(qǐng)求接收模塊,用于接收客戶(hù)端發(fā)送的由用戶(hù)發(fā)起的訪(fǎng)問(wèn)請(qǐng)求;

前端標(biāo)識(shí)確定模塊,用于根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí);

服務(wù)器路徑確定模塊,用于在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑;

請(qǐng)求轉(zhuǎn)發(fā)模塊,用于按照所述路徑將所述訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述后端服務(wù)器。

可選的,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

路由表建立模塊,用于預(yù)先通過(guò)配置定向upstream建立各前端標(biāo)識(shí)與各后端服務(wù)器的路徑的路由表,其中,各后端服務(wù)器屬于同一個(gè)服務(wù)器集群。

可選的,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

路由表修改模塊,用于在所述服務(wù)器集群中新增后端服務(wù)器后,通過(guò)在所述路由表中添加新增的所述后端服務(wù)器的路徑和對(duì)應(yīng)的前端標(biāo)識(shí),啟用新增的所述后端服務(wù)器。

可選的,所述前端標(biāo)識(shí)確定模塊,包括:

新注冊(cè)用戶(hù)判斷單元,用于根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求判斷所述用戶(hù)是否為新注冊(cè)用戶(hù);

新注冊(cè)用戶(hù)處理單元,用于若所述新注冊(cè)用戶(hù)判斷單元的判斷結(jié)果為是,則根據(jù)當(dāng)前服務(wù)器集群中各后端服務(wù)器的負(fù)載情況,從所述服務(wù)器集群中選擇一臺(tái)后端服務(wù)器分配給所述用戶(hù),根據(jù)預(yù)設(shè)的路由表確定選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí),并將選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí)寫(xiě)入cookies,然后將所述cookies發(fā)送至所述客戶(hù)端;

非新注冊(cè)用戶(hù)處理單元,用于若所述新注冊(cè)用戶(hù)判斷單元的判斷結(jié)果為否,則從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

可選的,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

標(biāo)識(shí)一致性判斷單元,用于判斷從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)與從所述客戶(hù)端中存儲(chǔ)的cookies中解析獲得的前端標(biāo)識(shí)是否一致;

回寫(xiě)單元,用于若所述標(biāo)識(shí)一致性判斷單元的判斷結(jié)果為否,則將從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)寫(xiě)入到所述cookies,然后將所述cookies發(fā)送至所述客戶(hù)端。

由上述技術(shù)方案可知,本發(fā)明提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法,首先接收客戶(hù)端發(fā)送的由用戶(hù)發(fā)起的訪(fǎng)問(wèn)請(qǐng)求;根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí);在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑;按照所述路徑將所述訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述后端服務(wù)器。相較于現(xiàn)有技術(shù),本發(fā)明摒棄了采用二級(jí)域名進(jìn)行定向映射的方式,而是使用路由表建立前端標(biāo)識(shí)和后端服務(wù)器的關(guān)聯(lián),從而使用戶(hù)根據(jù)前端標(biāo)識(shí)即可訪(fǎng)問(wèn)相應(yīng)的后端服務(wù)器,如此,在新增后端服務(wù)器的時(shí)候,只需要修改路由表即可,不需要新增二級(jí)域名,也不需要額外增加服務(wù)器配置,從而能夠保持對(duì)外url的統(tǒng)一,在用戶(hù)感知不到的情況下實(shí)現(xiàn)后端服務(wù)器的增加,同時(shí)能夠有效地節(jié)約域名,另外,更改路由表相較于增加二級(jí)域名及服務(wù)器配置的方式更加簡(jiǎn)單、靈活,便于后期擴(kuò)展。

本發(fā)明提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),與上述基于http代理服務(wù)器的無(wú)感知定向代理方法出于相同的發(fā)明構(gòu)思,具有相同的有益效果。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明具體實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)具體實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹。

圖1示出了本發(fā)明第一實(shí)施例所提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法的流程圖;

圖2示出了本發(fā)明提供的一個(gè)具體實(shí)施例中nginx處理請(qǐng)求的流程圖;

圖3示出了本發(fā)明第二實(shí)施例所提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)的示意圖。

具體實(shí)施方式

下面將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案的實(shí)施例進(jìn)行詳細(xì)的描述。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,因此只是作為示例,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。

需要注意的是,除非另有說(shuō)明,本申請(qǐng)使用的技術(shù)術(shù)語(yǔ)或者科學(xué)術(shù)語(yǔ)應(yīng)當(dāng)為本發(fā)明所屬領(lǐng)域技術(shù)人員所理解的通常意義。

本發(fā)明提供一種基于http代理服務(wù)器的無(wú)感知定向代理方法和系統(tǒng)。下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行說(shuō)明。

圖1示出了本發(fā)明第一實(shí)施例所提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法的流程圖。如圖1所示,本發(fā)明第一實(shí)施例提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法包括以下步驟:

步驟s101:接收客戶(hù)端發(fā)送的由用戶(hù)發(fā)起的訪(fǎng)問(wèn)請(qǐng)求。

本發(fā)明第一實(shí)施例可以基于以下網(wǎng)絡(luò)構(gòu)架實(shí)施:saas軟件系統(tǒng)配置在服務(wù)器集群上,該服務(wù)器集群包括多臺(tái)后端服務(wù)器,每臺(tái)后端服務(wù)器在集群內(nèi)有各自的內(nèi)網(wǎng)路徑,而整個(gè)服務(wù)器集群對(duì)外的域名是唯一的,并通過(guò)代理服務(wù)器(如nginx、squid、apachetrafficserver等)與外部網(wǎng)絡(luò)中的用戶(hù)進(jìn)行交互。本發(fā)明第一實(shí)施例以nginx(nginx是一款輕量級(jí)的web服務(wù)器/反向代理服務(wù)器)為例進(jìn)行說(shuō)明,現(xiàn)有技術(shù)中nginx主要起到負(fù)載均衡的功能,由于負(fù)載均衡主要是根據(jù)后端服務(wù)器的負(fù)載情況分配用戶(hù)的訪(fǎng)問(wèn)流量,用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求可能會(huì)根據(jù)負(fù)載均衡條件分配到任意一臺(tái)后端服務(wù)器上,而由于用戶(hù)在使用saas軟件時(shí)往往生成一些私有化數(shù)據(jù)保存在后端服務(wù)器中,因此,若只是依賴(lài)于負(fù)載均衡,同一個(gè)用戶(hù)前后兩次登陸有可能會(huì)被分配到不同的后端服務(wù)器中,若是不同的后端服務(wù)器,用戶(hù)在后一次登陸時(shí)無(wú)法調(diào)取前一次登陸時(shí)保存的私有化數(shù)據(jù),這樣顯然是不符合要求的,雖然現(xiàn)有技術(shù)中通過(guò)設(shè)置二級(jí)域名的方式實(shí)現(xiàn)了nginx的定向路由,但現(xiàn)有技術(shù)設(shè)置較為復(fù)雜,且需要較多的二級(jí)域名支持,比較浪費(fèi)域名,且對(duì)用戶(hù)而言體驗(yàn)并不好。因此,本發(fā)明第一實(shí)施例提供的技術(shù)方案的目的之一就是采用更為簡(jiǎn)單的方式實(shí)現(xiàn)代理服務(wù)器的定向路由功能。

需要說(shuō)明的是,本發(fā)明第一實(shí)施例以nginx代理服務(wù)器舉例進(jìn)行說(shuō)明,但本發(fā)明提供的所述基于http代理服務(wù)器的無(wú)感知定向代理方法并不限于nginx,在實(shí)際應(yīng)用中還可以用于squid、apachetrafficserver等基于http的代理服務(wù)器,其均在本發(fā)明的保護(hù)范圍之內(nèi)。

本步驟s101中,用戶(hù)通過(guò)客戶(hù)端訪(fǎng)問(wèn)saas軟件系統(tǒng),客戶(hù)端即向nginx發(fā)送訪(fǎng)問(wèn)請(qǐng)求,其中,所述客戶(hù)端一般是指瀏覽器或該saas軟件系統(tǒng)專(zhuān)用的客戶(hù)端軟件,所述訪(fǎng)問(wèn)請(qǐng)求可以是登陸請(qǐng)求、注冊(cè)請(qǐng)求或者數(shù)據(jù)查詢(xún)請(qǐng)求、上傳、下載等等,其均適用于該第一實(shí)施例提供的技術(shù)方案,均在本申請(qǐng)的保護(hù)范圍之內(nèi)。

步驟s102:根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

nginx在接收到訪(fǎng)問(wèn)請(qǐng)求后,即可根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定對(duì)應(yīng)的后端服務(wù)器的前端標(biāo)識(shí),具體可以根據(jù)訪(fǎng)問(wèn)請(qǐng)求的內(nèi)容有多種可行的實(shí)施方式,例如:

首先,根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求判斷所述用戶(hù)是否為新注冊(cè)用戶(hù),具體可以采用根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求中是否含有注冊(cè)信息以及用戶(hù)數(shù)據(jù)庫(kù)中是否有該用戶(hù)的信息等方式判斷該用戶(hù)是否為新注冊(cè)用戶(hù);

若是新注冊(cè)用戶(hù),那么所有的后端服務(wù)器上都不會(huì)有該用戶(hù)之前的私有化數(shù)據(jù),則根據(jù)當(dāng)前服務(wù)器集群中各后端服務(wù)器的負(fù)載情況,從所述服務(wù)器集群中選擇一臺(tái)后端服務(wù)器分配給所述用戶(hù),在nginx上預(yù)先設(shè)置一路由表,路由表中記載有該后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí),那么,可以根據(jù)預(yù)設(shè)的路由表確定選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí);為了便于該用戶(hù)后續(xù)更方便的訪(fǎng)問(wèn),還可以將選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí)寫(xiě)入cookies,然后將所述cookies發(fā)送至所述客戶(hù)端;

若否,則所述訪(fǎng)問(wèn)請(qǐng)求中應(yīng)該攜帶有該用戶(hù)上一次登陸的后端服務(wù)器的前端標(biāo)識(shí),那么,直接從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

需要說(shuō)明的是,本發(fā)明第一實(shí)施例中所述的前端標(biāo)識(shí),可以是后端服務(wù)器的代碼、名稱(chēng)等唯一性標(biāo)識(shí),主要用于識(shí)別不同的后端服務(wù)器。本發(fā)明第一實(shí)施例中使用前端標(biāo)識(shí)而不是后端服務(wù)器的內(nèi)網(wǎng)路徑與客戶(hù)端進(jìn)行交互,一方面可以簡(jiǎn)化數(shù)據(jù)量,另一方面可以保護(hù)服務(wù)器內(nèi)部隱私。

步驟s103:在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑。

本發(fā)明第一實(shí)施例中,預(yù)先在nginx上設(shè)置有路由表,路由表記載有服務(wù)器集群中各后端服務(wù)器的路徑與各前端標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。例如,在本發(fā)明提供的一個(gè)實(shí)施例中,在所述在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑的步驟前,還包括:

預(yù)先通過(guò)配置定向upstream建立各前端標(biāo)識(shí)與各后端服務(wù)器的路徑的路由表,其中,各后端服務(wù)器屬于同一個(gè)服務(wù)器集群。

配置定向upstream的示例代碼如下:

示例中,oppkma、kiftop為不同的兩臺(tái)后端服務(wù)器的名稱(chēng),即前端標(biāo)識(shí),server10.44.176.48:8086和server10.44.29.237:8084為上述兩臺(tái)后端服務(wù)器對(duì)應(yīng)的路徑。

本發(fā)明第一實(shí)施例提供的上述配置定向upstream的方法編輯簡(jiǎn)單、修改靈活,例如,在所述服務(wù)器集群中新增后端服務(wù)器后,通過(guò)在所述路由表中添加新增的所述后端服務(wù)器的路徑和對(duì)應(yīng)的前端標(biāo)識(shí),即可啟用新增的所述后端服務(wù)器。另外,若需要對(duì)后端服務(wù)器進(jìn)行維護(hù)、升級(jí)、替換等,也可以將舊后端服務(wù)器的用戶(hù)數(shù)據(jù)拷貝到新后端服務(wù)器中,然后,直接在路由表中使用新后端服務(wù)器的路徑替換舊后端服務(wù)器的路徑,即可將舊后端服務(wù)器替換下來(lái)進(jìn)行維護(hù)、升級(jí)等,當(dāng)然,若新后端服務(wù)器相對(duì)于舊后端服務(wù)器已經(jīng)進(jìn)行了升級(jí),那么替換的過(guò)程就是升級(jí)的過(guò)程,綜上,采用本發(fā)明第一實(shí)施例提供的上述方法,可以在用戶(hù)感知不到的情況下完成對(duì)后端服務(wù)器的維護(hù)、升級(jí)等。

步驟s104:按照所述路徑將所述訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述后端服務(wù)器。

考慮到使用cookies可以更加方便客戶(hù)端與后端服務(wù)器的數(shù)據(jù)交互,在本發(fā)明提供的一個(gè)實(shí)施例中,在用戶(hù)登陸后,后端服務(wù)器也會(huì)生成cookies發(fā)送給客戶(hù)端,該cookies中包含有用戶(hù)訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

考慮到可能會(huì)有多個(gè)用戶(hù)使用同一個(gè)客戶(hù)端進(jìn)行訪(fǎng)問(wèn),那么前一個(gè)用戶(hù)登陸后留下的cookies不再適用于后一個(gè)用戶(hù),那么在后一個(gè)用戶(hù)登陸后,需要對(duì)該客戶(hù)端的cookies進(jìn)行回寫(xiě),以保證cookies與用戶(hù)的一致性,避免cookies錯(cuò)誤給后續(xù)訪(fǎng)問(wèn)產(chǎn)生誤導(dǎo),具體實(shí)施方式可以是:

在所述從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)的步驟后,判斷從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)與從所述客戶(hù)端中存儲(chǔ)的cookies中解析獲得的前端標(biāo)識(shí)是否一致;

若否,則將從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)寫(xiě)入到所述cookies,然后將所述cookies發(fā)送至所述客戶(hù)端。

至此,通過(guò)步驟s101至步驟s104,完成了本發(fā)明第一實(shí)施例所提供的一種基于http代理服務(wù)器的無(wú)感知定向代理方法的流程。相較于現(xiàn)有技術(shù),本發(fā)明摒棄了采用二級(jí)域名進(jìn)行定向映射的方式,而是使用路由表建立前端標(biāo)識(shí)和后端服務(wù)器的關(guān)聯(lián),從而使用戶(hù)根據(jù)前端標(biāo)識(shí)即可訪(fǎng)問(wèn)相應(yīng)的后端服務(wù)器,如此,在新增后端服務(wù)器的時(shí)候,只需要修改路由表即可,不需要新增二級(jí)域名,也不需要額外增加服務(wù)器配置,從而能夠保持對(duì)外url的統(tǒng)一,在用戶(hù)感知不到的情況下實(shí)現(xiàn)后端服務(wù)器的增加,同時(shí)能夠有效地節(jié)約域名,另外,更改路由表相較于增加二級(jí)域名及服務(wù)器配置的方式更加簡(jiǎn)單、靈活,便于后期擴(kuò)展。

請(qǐng)參考圖2,其為本發(fā)明提供的一個(gè)具體實(shí)施例中nginx處理請(qǐng)求的流程圖,可以結(jié)合上述第一實(shí)施例進(jìn)行理解,該圖2主要從代碼邏輯方面描述了nginx處理訪(fǎng)問(wèn)請(qǐng)求的流程,此處不再一一進(jìn)行文字贅述,請(qǐng)參考附圖2進(jìn)行理解。其中,_point表示前端標(biāo)識(shí),判斷_point為空的步驟主要是檢測(cè)非法請(qǐng)求,以避免非法請(qǐng)求對(duì)saas軟件系統(tǒng)造成擾亂,對(duì)整個(gè)系統(tǒng)起到加固的作用。

在上述的第一實(shí)施例中,提供了一種基于http代理服務(wù)器的無(wú)感知定向代理方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)。請(qǐng)參考圖3,其為本發(fā)明第二實(shí)施例提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)的示意圖。由于系統(tǒng)實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的系統(tǒng)實(shí)施例僅僅是示意性的。

本發(fā)明第二實(shí)施例提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),包括:

訪(fǎng)問(wèn)請(qǐng)求接收模塊101,用于接收客戶(hù)端發(fā)送的由用戶(hù)發(fā)起的訪(fǎng)問(wèn)請(qǐng)求;

前端標(biāo)識(shí)確定模塊102,用于根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求確定所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí);

服務(wù)器路徑確定模塊103,用于在預(yù)設(shè)的路由表中查詢(xún)與所述前端標(biāo)識(shí)對(duì)應(yīng)的后端服務(wù)器的路徑;

請(qǐng)求轉(zhuǎn)發(fā)模塊104,用于按照所述路徑將所述訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述后端服務(wù)器。

在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

路由表建立模塊,用于預(yù)先通過(guò)配置定向upstream建立各前端標(biāo)識(shí)與各后端服務(wù)器的路徑的路由表,其中,各后端服務(wù)器屬于同一個(gè)服務(wù)器集群。

在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

路由表修改模塊,用于在所述服務(wù)器集群中新增后端服務(wù)器后,通過(guò)在所述路由表中添加新增的所述后端服務(wù)器的路徑和對(duì)應(yīng)的前端標(biāo)識(shí),啟用新增的所述后端服務(wù)器。

在本發(fā)明提供的一個(gè)實(shí)施例中,所述前端標(biāo)識(shí)確定模塊102,包括:

新注冊(cè)用戶(hù)判斷單元,用于根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求判斷所述用戶(hù)是否為新注冊(cè)用戶(hù);

新注冊(cè)用戶(hù)處理單元,用于若所述新注冊(cè)用戶(hù)判斷單元的判斷結(jié)果為是,則根據(jù)當(dāng)前服務(wù)器集群中各后端服務(wù)器的負(fù)載情況,從所述服務(wù)器集群中選擇一臺(tái)后端服務(wù)器分配給所述用戶(hù),根據(jù)預(yù)設(shè)的路由表確定選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí),并將選擇的所述后端服務(wù)器對(duì)應(yīng)的前端標(biāo)識(shí)寫(xiě)入cookies,然后將所述cookies發(fā)送至所述客戶(hù)端;

非新注冊(cè)用戶(hù)處理單元,用于若所述新注冊(cè)用戶(hù)判斷單元的判斷結(jié)果為否,則從所述訪(fǎng)問(wèn)請(qǐng)求中解析獲得所述用戶(hù)請(qǐng)求訪(fǎng)問(wèn)的后端服務(wù)器的前端標(biāo)識(shí)。

在本發(fā)明提供的一個(gè)實(shí)施例中,所述基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng),還包括:

標(biāo)識(shí)一致性判斷單元,用于判斷從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)與從所述客戶(hù)端中存儲(chǔ)的cookies中解析獲得的前端標(biāo)識(shí)是否一致;

回寫(xiě)單元,用于若所述標(biāo)識(shí)一致性判斷單元的判斷結(jié)果為否,則將從訪(fǎng)問(wèn)請(qǐng)求中解析獲得的所述前端標(biāo)識(shí)寫(xiě)入到所述cookies,然后將所述cookies發(fā)送至所述客戶(hù)端。

以上,為本發(fā)明第二實(shí)施例提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)的實(shí)施例說(shuō)明。

本發(fā)明提供的一種基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)與上述基于http代理服務(wù)器的無(wú)感知定向代理方法出于相同的發(fā)明構(gòu)思,具有相同的有益效果,此處不再贅述。

在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說(shuō)明書(shū)中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。

需要說(shuō)明的是,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。

本發(fā)明實(shí)施例所提供的基于http代理服務(wù)器的無(wú)感知定向代理系統(tǒng)可以是計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見(jiàn)方法實(shí)施例,在此不再贅述。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、系統(tǒng)和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、系統(tǒng)和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,又例如,多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些通信接口,系統(tǒng)或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。

所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。

最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說(shuō)明書(shū)的范圍當(dāng)中。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1