胡天明 羅曉林
【摘要】? ? 當(dāng)今市場已經(jīng)由 “以產(chǎn)品為中心”過渡到了“以客戶體念為中心”的競爭時代,在建設(shè)信息化、數(shù)字化的“線上企業(yè)”時,需要重點(diǎn)探討一下如何將企業(yè)開發(fā)的應(yīng)用部署到互聯(lián)網(wǎng)上使不同網(wǎng)絡(luò)中的客戶都有良好的體念。本文探討利用DNS智能解析、NAT、Nginx來規(guī)避企業(yè)在部署互聯(lián)網(wǎng)應(yīng)用系統(tǒng)時跨域訪問的一種部署方法,該方法不僅幫助企業(yè)解決公網(wǎng)地址緊張的困惑、并能節(jié)約企業(yè)的軟、硬件投入,同時降低每bit數(shù)據(jù)傳遞的能耗,為低碳社會建設(shè)貢獻(xiàn)力量。
【關(guān)鍵詞】? ? 互聯(lián)網(wǎng)應(yīng)用系統(tǒng)? ? 跨域訪問? ? DNS智能解析? ? NAT
隨著信息時代的到來,在產(chǎn)品與服務(wù)同質(zhì)化趨勢日益顯著,企業(yè)的生存和競爭環(huán)境發(fā)生了根本性的變化。當(dāng)今市場已經(jīng)由 “以產(chǎn)品為中心”過渡到了“以客戶體念為中心”的競爭時代,即要求企業(yè)要保證產(chǎn)品質(zhì)量,降低成本,又要提供便利的服務(wù),提升體念;在內(nèi)部管理方面要方便協(xié)同,提升效率;而隨著通訊技術(shù)和計算機(jī)技術(shù)的飛速發(fā)展,又特別是在新冠疫情的催生下,商業(yè)模式、辦公模式深受信息化的影響發(fā)生了劇烈的變化;使得線上經(jīng)濟(jì)、線上辦公、移動辦公獲得了長足的發(fā)展;各類企業(yè)都大刀闊斧進(jìn)行信息化建設(shè),開發(fā)了許多企業(yè)應(yīng)用,來支撐客戶在線上體念或購買產(chǎn)品,方便員工在線上進(jìn)行協(xié)同和辦公;把企業(yè)建設(shè)成為信息化、數(shù)字化的“線上企業(yè)”正在進(jìn)行的熱火朝天。如何將企業(yè)開發(fā)的應(yīng)用部署到互聯(lián)網(wǎng)上使不同網(wǎng)絡(luò)中的客戶都有良好的體念,本文接下來做重點(diǎn)的探討。
一、中小企業(yè)互聯(lián)網(wǎng)應(yīng)用部署存在困境
目前我國有移動、電信、聯(lián)通三大主要通訊運(yùn)營商,都建有各自的網(wǎng)絡(luò)提供互聯(lián)網(wǎng)業(yè)務(wù),三大運(yùn)營商網(wǎng)絡(luò)的互聯(lián)互通是通過幾個特定的區(qū)域邊界路由器節(jié)點(diǎn)進(jìn)行連接的,受制于連接點(diǎn)數(shù)量、帶寬、以及運(yùn)營商之間的競爭關(guān)系等眾多復(fù)雜因素,跨運(yùn)營商的訪問大多數(shù)情況下都會速度較慢,丟包卡頓,連接速度非常不穩(wěn)定;而企業(yè)開發(fā)的應(yīng)用為提升用戶對產(chǎn)品的體驗(yàn),一般會拍攝圖片、錄制視頻、借助VR、AR等做直播,而這些視頻、語音、移動支付等實(shí)時性要求較強(qiáng)的業(yè)務(wù)對網(wǎng)絡(luò)就有更高的要求。企業(yè)客戶或員工使用的寬帶網(wǎng)絡(luò)或移動網(wǎng)絡(luò)是分布在移動、電信、聯(lián)通三個運(yùn)營商中;企業(yè)一般將這些應(yīng)用服務(wù)部署在某個運(yùn)營商的網(wǎng)絡(luò)上,這樣對于另外兩個運(yùn)營商的客戶來訪問本企業(yè)的應(yīng)用服務(wù),即便是同地市的客戶也需要通過此運(yùn)營商城域網(wǎng)到省干網(wǎng)絡(luò)再到國干網(wǎng)絡(luò),然后通過運(yùn)營商間互聯(lián)的邊界路由器連接另一個運(yùn)營商的國干網(wǎng)絡(luò)再到省干網(wǎng)絡(luò),最后到同地市的城域網(wǎng)。
這是一個非常復(fù)雜的跨自治域系統(tǒng)的路由過程,如此漫長的路由尋址過程以及受運(yùn)營商競爭關(guān)系的影響,很難保證企業(yè)客戶非常流暢的訪問本企業(yè)的應(yīng)用,特別是對于企業(yè)的視頻、移動支付、語音等實(shí)時性較高的業(yè)務(wù)就更加難以保證效果,這樣即使企業(yè)開發(fā)了優(yōu)秀的應(yīng)用,也無法令客戶和員工獲得優(yōu)秀的線上體驗(yàn);與此同時網(wǎng)絡(luò)中產(chǎn)生了大量跨自治域的流量,極大的增加了每bit數(shù)據(jù)消耗的能量,社會效益也很差。
二、中小企業(yè)互聯(lián)網(wǎng)應(yīng)用部署方案研究與探討
為解決上述問題,許多企業(yè)將一個應(yīng)用在每個運(yùn)營商網(wǎng)絡(luò)中都部署一套,這樣雖然能滿足不同客戶和員工的體驗(yàn),但將使企業(yè)的軟硬件采購成本直接增加了兩倍,還將極大的增加應(yīng)用上線后的操作和維護(hù)難度。是否可以只部署一套系統(tǒng),但各運(yùn)營商的客戶訪問系統(tǒng)時的路徑不夸運(yùn)營商自治域系統(tǒng),而只在本自治域系統(tǒng)中進(jìn)行呢?本文探討提供一種利用DNS智能解析、NAT映射、及利用Nginx等技術(shù)來部署企業(yè)應(yīng)用服務(wù),用來實(shí)現(xiàn)一套應(yīng)用系統(tǒng)解決不同運(yùn)營商運(yùn)的用戶訪問應(yīng)用服務(wù)而只在本運(yùn)營商的自治域之內(nèi)。
2.1 DNS智能解析
在TCP/IP協(xié)議中,主機(jī)都是以ip地址來標(biāo)識,IP地址是由四段以“.”分開的數(shù)字組成(以IPv4的地址為例,IPv6的地址同理),全數(shù)字形式顯然不符合人類記憶的習(xí)慣,如是引入了域名系統(tǒng)(域名和ip的對應(yīng)關(guān)系);我們要訪問企業(yè)的應(yīng)用服務(wù),只要在瀏覽器中輸入域名,主機(jī)就會將你輸入的域名通過域名系統(tǒng)解析成IP,以便數(shù)據(jù)能在互聯(lián)網(wǎng)上尋址到達(dá)目的主機(jī)。傳統(tǒng)DNS解析不判斷訪問者來源,只會根據(jù)域名來查表,找出域名對應(yīng)的IP地址; 而智能解析,是在域名數(shù)據(jù)表中加入源IP,解析時,會判斷訪問者的來源,為不同的訪問者智能返回不同的IP地址,可使訪問者在訪問網(wǎng)站時可獲取用戶指定的IP地址, 如此我們可以使某一運(yùn)營商網(wǎng)絡(luò)的寬帶用戶訪問企業(yè)應(yīng)用時,域名管理系統(tǒng)將根據(jù)客戶的來源把域名解析成該運(yùn)營商擁有的IP,使該訪問不要跨運(yùn)營商網(wǎng)絡(luò)就可完成。
2.2 NAT映射
NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換,網(wǎng)絡(luò)地址轉(zhuǎn)換)當(dāng)在專用網(wǎng)內(nèi)部的一些主機(jī)本來已經(jīng)分配到了本地IP地址(及企業(yè)私網(wǎng)地址),但現(xiàn)在又想和因特網(wǎng)上的主機(jī)通信時,可使用NAT方法,將私網(wǎng)地址映射成運(yùn)營商提供的公網(wǎng)地址。
NAT的實(shí)現(xiàn)方式有三種,即靜態(tài)轉(zhuǎn)換Static Nat、動態(tài)轉(zhuǎn)換Dynamic Nat和端口多路復(fù)用OverLoad。
靜態(tài)轉(zhuǎn)換是指將內(nèi)部網(wǎng)絡(luò)的某個私有IP地址轉(zhuǎn)換為某個互聯(lián)網(wǎng)公有IP地址,IP地址對是一對一對應(yīng)的,是一成不變的。由于企業(yè)部署是互聯(lián)網(wǎng)應(yīng)用,應(yīng)用服務(wù)器需要配置固定ip地址,在此需要采用靜態(tài)轉(zhuǎn)換。
2.3 Nginx技術(shù)
Nginx——Ngine X,是一款高性能的反向代理服務(wù)器;可以是一個IMAP、POP3、SMTP代理服務(wù)器;也可以是一個Http服務(wù)器。也就是說Nginx本身就可以托管網(wǎng)站,進(jìn)行Http服務(wù)處理,也可以作為反向代理服務(wù)器使用。
利用Nginx代理和負(fù)載均衡功能來實(shí)現(xiàn)應(yīng)用服務(wù)的靈活部署,為企業(yè)節(jié)約對服務(wù)器硬件資源或滿足業(yè)務(wù)系統(tǒng)的冗余備份的需求。
三、中小企業(yè)互聯(lián)網(wǎng)應(yīng)用部署方案具體實(shí)施方式
由于目前主流是將應(yīng)服務(wù)部署在linux等開源系統(tǒng)上,且大部分的應(yīng)用服務(wù)使用前后端分離技術(shù),以下部分就以centos系統(tǒng)和前后端分離項(xiàng)目的為例來闡述。配置實(shí)施過程如下:
1.準(zhǔn)備好服務(wù)器,操作系統(tǒng)及數(shù)據(jù)庫等應(yīng)用需要的軟硬件。
2.向移動、電信、聯(lián)通申請公網(wǎng)IP地址,并開通網(wǎng)絡(luò)。
3.規(guī)劃好域名及ip、及端口等數(shù)據(jù),如下表(表中數(shù)據(jù)僅為示例):
數(shù)據(jù)規(guī)劃說明:如果NAT設(shè)備支持一個內(nèi)網(wǎng)ip +一個內(nèi)網(wǎng)端口映射成3個公網(wǎng)ip+端口,前端項(xiàng)目端口也可以是一個,并且后文只需部署一套前端項(xiàng)目即可,部署更為簡單。
4.為應(yīng)用在域名管理機(jī)構(gòu)注冊域名,并對域名配置智能解析,特別是需要根據(jù)實(shí)際對解析線路進(jìn)行設(shè)置,企業(yè)還可以利用智能解析的高級功能進(jìn)行線路自定義設(shè)置,這里不再說明,具體配置可依據(jù)各域名管理機(jī)構(gòu)提供的配置說明。
5.配置應(yīng)用服務(wù)器的NAT映射。將應(yīng)用內(nèi)網(wǎng)ip+端口映射到公網(wǎng)ip的80端口:
6.安裝centos系統(tǒng)及應(yīng)用使用的數(shù)據(jù)庫系統(tǒng),本發(fā)明對操作系統(tǒng)及數(shù)據(jù)庫的安裝沒有特殊要求,安裝按應(yīng)用系統(tǒng)要求執(zhí)行即可;
7.安裝Nginx(本示例中需要安裝三個分別對應(yīng)三個運(yùn)營商)。注意安裝Nginx不可使用yum方式安裝,必須使用源代碼安裝方式。
8.配置Nginx并部署三套前端項(xiàng)目(示例中修改3套前端項(xiàng)目對應(yīng)的Nginx的配置文件Nginx.conf里的前端項(xiàng)目端口號為9005、9006、9007)。本發(fā)明對后端項(xiàng)目部署及前后端項(xiàng)目的連接沒有特殊要求,按應(yīng)用系統(tǒng)的要求實(shí)行即可。
9.結(jié)果驗(yàn)證:
模擬用戶在電信、移動、聯(lián)通網(wǎng)絡(luò)中,跟蹤test.***.cn的路由如下:
根據(jù)上述測試,完美地避免了跨域訪問業(yè)務(wù)系統(tǒng)的問題。
以上所述僅本方法為一個示例而已,根據(jù)本方法,以及nat設(shè)備的功能,對于本領(lǐng)域的技術(shù)人員來說,可以有各種更改和變化:比如說單體項(xiàng)目,由于沒有前、后端端概念,在服務(wù)器上部署不同tomcat端口三套單體項(xiàng)目,亦或者NAT設(shè)備規(guī)則足夠靈活,則部署一套即可。
四、中小企業(yè)互聯(lián)網(wǎng)應(yīng)用部署方案意義及效果
1.社會意義。由于實(shí)現(xiàn)同城客戶在同城域網(wǎng)內(nèi)的訪問,可以極大的降低減少跨市、跨省、跨自治域數(shù)據(jù)流量,從源頭上減少對設(shè)備及帶寬的消耗,大大減低每bit數(shù)據(jù)在網(wǎng)絡(luò)中的能量消耗,對實(shí)現(xiàn)低碳社會有非常大的貢獻(xiàn)。
2.用戶感知提升明顯。徹底的規(guī)避流量跨運(yùn)營商復(fù)雜的路由路徑問題,極大的減少由于設(shè)備自身造成的時延,提升訪問速度;解決運(yùn)營商間互聯(lián)節(jié)點(diǎn)少、互聯(lián)帶寬有限而造成訪問卡頓、不穩(wěn)定的等問題。
3.企業(yè)自主可控并節(jié)約成本。企業(yè)能自主規(guī)避運(yùn)營商間由于競爭關(guān)系而相互限制、設(shè)置優(yōu)先級等手段對業(yè)務(wù)造成不確定影響;可以減少服務(wù)器的硬件投入,節(jié)約成本;無需改變企業(yè)內(nèi)網(wǎng)架構(gòu),且對企業(yè)部署的應(yīng)用沒有額外的要求。
參? 考? 文? 獻(xiàn)
[1] 陶輝.深入理解Nginx:模塊開發(fā)與架構(gòu)解析[M].北京:機(jī)械工業(yè)出版社,2016
[2]王小東.Nginx應(yīng)用與運(yùn)維實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2020
[3]曹銳, 吳建平, 徐明偉. 快速域名解析系統(tǒng)性能分析[J]. 清華大學(xué)學(xué)報:自然科學(xué)版, 2009(11):1896-1900.
胡天明(1974.05),男,漢族,湖南湘潭,工程師,主要從事通訊及IT網(wǎng)絡(luò)技術(shù)、互聯(lián)網(wǎng)信息系統(tǒng)的研究和應(yīng)用。