胡天明 羅曉林


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