如何運(yùn)用nginx實(shí)現(xiàn)TCP/UDP第四層的調(diào)度?

在者之前運(yùn)用 upstream 實(shí)現(xiàn)的都是7層調(diào)度,如何運(yùn)用nginx實(shí)現(xiàn)4層調(diào)度呢?

知識(shí)點(diǎn)回顧:網(wǎng)絡(luò)七層協(xié)議

OSI是一個(gè)開放性的通信系統(tǒng)互連參考模型,是一個(gè)非常好的協(xié)議規(guī)范;

OSI統(tǒng)一規(guī)范了網(wǎng)絡(luò)的通信,如果沒有這個(gè)協(xié)議,就沒有當(dāng)今的便利的互聯(lián)網(wǎng)世界。


OSI模型有7層結(jié)構(gòu),從上到下分別是:

7、應(yīng)用層:與其它計(jì)算機(jī)進(jìn)行通訊的一個(gè)服務(wù),它是對(duì)應(yīng)應(yīng)用程序的通信服務(wù)。比如:HTTP 、 FTP 、NFS 、 NGINX 、QQ等軟件的通信;

6、表示層:著一層主要的功能是定義數(shù)據(jù)及加密;

5、會(huì)話層:它定義了如何開始,控制和結(jié)束一個(gè)會(huì)話,包括對(duì)多個(gè)雙向消息的控制和管理;

4、傳輸層:是兩臺(tái)計(jì)算機(jī)經(jīng)過網(wǎng)絡(luò)層進(jìn)行數(shù)據(jù)通信時(shí),第一個(gè)端到端的層次,具有緩存的作用。當(dāng)網(wǎng)絡(luò)層的服務(wù)質(zhì)量不能滿足要求時(shí),它將服務(wù)加以提高,當(dāng)服務(wù)質(zhì)量較好時(shí),它只需要很少工作;

這層的功能包括是否選擇差錯(cuò)恢復(fù)協(xié)議還是無(wú)差錯(cuò)恢復(fù)協(xié)議,以及在同一主機(jī)上對(duì)不同應(yīng)用的數(shù)據(jù)流的輸入進(jìn)行復(fù)用,還包括對(duì)收到的順序不對(duì)的數(shù)據(jù)包的重新排序功能;例如:TCP 、UDP 、SPX;

3、網(wǎng)絡(luò)層:網(wǎng)絡(luò)層的產(chǎn)生也是網(wǎng)絡(luò)發(fā)展的結(jié)果.在聯(lián)機(jī)系統(tǒng)和線路交換的環(huán)境中,網(wǎng)絡(luò)層的功能沒有太大意義.當(dāng)數(shù)據(jù)終端增多時(shí)。它們之間有中繼設(shè)備相連.此時(shí)會(huì)出現(xiàn)一臺(tái)終端要求不只是與唯一的一臺(tái)而是能和多臺(tái)終端通信的情況,這就是產(chǎn)生了把任意兩臺(tái)數(shù)據(jù)終端設(shè)備的數(shù)據(jù)鏈接起來的問題,也就是路由或者叫尋徑

2、數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路可以粗略地理解為數(shù)據(jù)通道。

1、物理層:物理層是OSI的第一層,它雖然處于最底層,卻是整個(gè)開放系統(tǒng)的基礎(chǔ)。物理層為設(shè)備之間的數(shù)據(jù)通信提供傳輸媒體及互連設(shè)備,為數(shù)據(jù)傳輸提供可靠的環(huán)境。


其中:<7、6、5、4>層定義了應(yīng)用程序的功能,<3、2、1>層主要通過網(wǎng)絡(luò)的端到端的數(shù)據(jù)流;


要實(shí)現(xiàn)nginx實(shí)現(xiàn)4層調(diào)度必須要掌握了解以下幾個(gè)知識(shí)點(diǎn):

第一、安裝nginx時(shí)需要添加什么功能模塊才能實(shí)現(xiàn)4層調(diào)度?

第二、如何修改nginx的配置文件來實(shí)現(xiàn)4層調(diào)度?

第三、需要注意的事項(xiàng)以及常見的錯(cuò)誤有哪些?


第一、安裝nginx時(shí)需要添加什么功能模塊才能實(shí)現(xiàn)4層調(diào)度?


答:要實(shí)現(xiàn)4層調(diào)度,Nginx編譯安裝時(shí)候需要添加 --with-stream 模塊;

具體操作如下:

cd ?/nginx ? 下面敲以下命令:

./configure ?--user=nginx ?--group=nginx ?--with-http_ssl_module ? --with-stream

--user=nginx ? ? ? ? ? ? ? ? ? ? ? ? ? ?##指定nginx這個(gè)軟件歸屬nginx用戶,可以自由定;

--group=nginx ? ? ? ? ? ? ? ? ? ? ? ??##指定nginx這個(gè)軟件歸屬nginx組,可以自由定;

--with-http_ssl_module ? ? ? ? ##開啟SSL加密功能;

--with-stream ? ? ? ? ? ? ? ? ? ? ? ? ? ##開啟4層反向代理功能;


第二、如何修改nginx的配置文件來實(shí)現(xiàn)4層調(diào)度?


第一步、運(yùn)用 vim ? /usr /local /nginx /conf /nginx.conf ?進(jìn)入nginx的主配置文件;

第二步、在文件的 http { ?字符上面添加以下內(nèi)容;

因?yàn)閔ttp { 屬于第七層應(yīng)用層,而我們現(xiàn)在要實(shí)現(xiàn)的是第四層的調(diào)度,所以得在http { 范圍外添加;

stream ?{

? ? ? ? ? ? ? ? upstream ?backend ?{ ? ? ? ? ? ? ? ? ? ?##backend 是自定義的集群名稱

? ? ? ? ? ? ? ? ? ? server ?192.168.2.100:22; ? ? ? ##歸屬backend調(diào)度IP地址和服務(wù)端口號(hào)22,屬于ssh遠(yuǎn)程功能的端口號(hào);

? ? ? ? ? ? ? ? ? ? server ?192.168.2.200:22; ? ? ? ##同上

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ?##大括號(hào)一定是一對(duì)一對(duì)出現(xiàn);

? ? ? ? ? ? ? ? server ? ?{

? ? ? ? ? ? ? ? ? ? ? ? ? listen ?22; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ##nginx監(jiān)聽的端口號(hào);

? ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ?backend; ? ? ? ##當(dāng)遠(yuǎn)程訪問主機(jī)proxy時(shí),通過集群backend來進(jìn)行調(diào)度;

? ? ? ? ? ? ? ? ? ? ? ? ? proxy_connect_timeout 1s; ? ? ? ?##連接時(shí)超過1s還步成功就退出;

? ? ? ? ? ? ? ? ? ? ? ? ? proxy_timeout 3s; ? ? ? ? ? ? ? ?##3s之后可以再次連接;也可以不加這兩行;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?##大括號(hào)必須時(shí)一對(duì)一對(duì)出現(xiàn);

第三步、重新啟動(dòng)nginx服務(wù);

/usr /local /nginx /sbin /nginx ? ? ?-s ? ?reload

第四步、使用客戶端進(jìn)行測(cè)試;

ssh ? -X ? root@192.168.4.5 ? -p ? 22;

譯為:以root的身份,運(yùn)用 ssh 工具,遠(yuǎn)程訪問192.168.4.5這臺(tái)服務(wù)器,訪問的端口號(hào) -p 22;


第三、需要注意的事項(xiàng)以及常見的錯(cuò)誤有哪些?


1.結(jié)尾忘記寫“ ?; ”分號(hào)了;

2.忘記寫大括號(hào)“ ? { ?} ” ,或和漏寫一個(gè);

3.字母寫錯(cuò),或者端口號(hào)寫錯(cuò);


知識(shí)點(diǎn)拓展:常見HTTP狀態(tài)碼含義解讀;


訪問網(wǎng)頁(yè)會(huì)出現(xiàn)以下代碼:

200 表示一切正常;

301 表示永久重定向;

302 表示臨時(shí)重定向;

401 表示用戶名或者密碼錯(cuò)誤;

403 禁止訪問,客戶端IP的地址被拒絕;

404 網(wǎng)頁(yè)文件不存在;

500 服務(wù)器內(nèi)部錯(cuò)誤;

502 Bad Gsteway;


以上......

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ( ? END ?)


祝:開心!

羅貴

2019-04-15于深圳

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 揣著明白裝糊涂,酒喝半醉是風(fēng)度,萬(wàn)里長(zhǎng)征第一步,家風(fēng)門風(fēng)永相注。ZM
    方圓甜蜜蜜閱讀 768評(píng)論 0 1
  • 姓名:蔣文亮 公司:南京寶立得廣告 組別:第377期六項(xiàng)精進(jìn)反省二組 【日精進(jìn)打卡第4天】 【知-學(xué)習(xí)】 誦讀《六...
    隨意33閱讀 269評(píng)論 0 0
  • 聽了貓叔的分享對(duì)于自己的規(guī)劃有了些明確方向,應(yīng)該說是知道該怎么走了。 使命,愿景,價(jià)值觀,這三者缺一不可。 年前參...
    秋秋小Q閱讀 169評(píng)論 0 1
  • 使用過Mina做Socket長(zhǎng)鏈接的同學(xué)應(yīng)該都遇到到過,在解碼時(shí)少包、多包的問題! 1.文本內(nèi)容發(fā)送端需要等緩沖區(qū)...
    shone閱讀 824評(píng)論 0 3

友情鏈接更多精彩內(nèi)容