最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用nginx代理ws或是wss的請求

 更新時間:2024年11月30日 14:42:17   作者:daiyunchao  
這篇文章主要為大家詳細介紹了如何使用nginx代理ws或是wss的請求,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

遇到的問題: 如何使用nginx代理ws或是wss的請求

起因是,為了降本增效要做服務(wù)器合并的需求,但兩個服務(wù)器之間的進程存在對外連接的端口沖突,如果我們改了端口,客戶端也會涉及到修改,但客戶端的版本太舊了,想改變和重新發(fā)版流程會拉的很長,所以我們嘗試別的方法來解決端口修改的問題

因為服務(wù)器的時間比較舊了,所以客戶端并沒有先連負載均衡再連服務(wù)器 針對這個問題我們提供了下面兩個方案

  • 多網(wǎng)卡,比如之前A服務(wù)器的啟動的監(jiān)聽端口都在IPA的,原B服務(wù)器遷移進來后監(jiān)聽的端口都在IPB上,這樣就實現(xiàn)了一臺服務(wù)器上,監(jiān)聽了多個重復(fù)端口的問題,我們只要將IPA和IPB分別綁定到不同的域名上即可實現(xiàn)客戶端無感的服務(wù)器遷移
  • 使用nginx做端口映射

最終我們選擇了成本更低的nginx端口映射的做法 具體的代碼如下:

server {
    listen 7865 ssl; #監(jiān)聽的端口(客戶端連接的原端口)
    server_name a.b.com;  #監(jiān)聽的域名,非必須
    ssl_certificate      /etc/nginx/a.pem;   #證書
    ssl_certificate_key  /etc/nginx/a.key; #證書
        ssl_session_timeout 20m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_verify_client off;
    location / {
        proxy_pass https://127.0.0.1:7899;  # 新的端口,這里有一個關(guān)鍵點,如果我們是ssl的,這里使用https的連接,如果沒有ssl,這里需要設(shè)置為http
        proxy_http_version 1.1;  # 必須使用 HTTP 1.1
        proxy_redirect off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

這里我們可以把nginx的這層反向代理看著是透明的,因為客戶端和nginx建立長連接,而nginx和后端服務(wù)器也會建立長連接,一旦我們的后端進程重啟了,客戶端還是會感知到.

拓展1: 負載均衡分類

我們按照起作用的ISO7層模式的層來區(qū)分的話,可以分為4層負載均衡和7層負載均衡

4層負載均衡

例如LVS或是AWS的NLB就是4層負載均衡 它的原理: 分別獲取包中的源IP地址和端口和目標IP地址和端口,對后端做負載均衡(算法可能是輪詢或是權(quán)重等)后修改包中的目標IP地址和端口,使其流量能得到轉(zhuǎn)發(fā)

請求的路徑是:

  • 客戶端發(fā)出情況,數(shù)據(jù)包被送到負載均衡器
  • 負載均衡通過源IP地址+端口和目標IP+端口確定請求最后轉(zhuǎn)發(fā)到哪一臺后端服務(wù)器
  • 負載均衡器通過修改目標IP和端口
  • 數(shù)據(jù)包被轉(zhuǎn)發(fā)到指定的后端服務(wù)器

響應(yīng)的路徑是:

  • 后端程序進行業(yè)務(wù)處理
  • 如果負載均衡器做了NAT(為了讓后端進程透明,目的是隱藏后端服務(wù)器,原理就是將源IP地址和源端口修改成負載均衡器的IP地址和端口),數(shù)據(jù)包會回到負載均衡器中
  • 返回給客戶端

如果負載均衡器沒有NAT功能,或是配置為直連的方式,則響應(yīng)的數(shù)據(jù)包是不會經(jīng)過負載均衡器的,這個可以通過分析流量包的源IP地址和端口來確認

4層負載均衡器的好處 4層負載均衡器不會解傳輸數(shù)據(jù)包,只會解header包從而獲取IP地址和端口,所以相對來說速度更快 什么時候我們需要使用4層負載均衡呢

  • 非HTTP的時候
  • 需要較高的性能
  • 場景簡單

7層負載均衡

例如nginx IIS就是7層的負載均衡

主要用于處理HTTP/HTTPS等應(yīng)用層協(xié)議。它不僅可以基于傳輸層信息(如IP地址和端口)進行負載均衡,還可以深入解析應(yīng)用層數(shù)據(jù),提供更靈活和高級的流量管理。

原理: 7層負載均衡器可以解析和檢查HTTP頭、URL、cookie、SSL信息等應(yīng)用層數(shù)據(jù)。這使得它能根據(jù)這些內(nèi)容做出智能的流量路由決策。 因為比較上層,所以可以做的事情比較多

  • 基于內(nèi)容轉(zhuǎn)發(fā): 可以根據(jù)特定的URL路徑、域名、HTTP方法或其他應(yīng)用層數(shù)據(jù),將請求定向到不同的服務(wù)器池。例如,將所有以"/images"結(jié)尾的請求路由到圖片服務(wù)器
  • session保持: 通過使用cookie或其他機制,確保來自同一客戶端的所有請求都被轉(zhuǎn)發(fā)到同一個后端服務(wù)器,從而維護用戶會話的連續(xù)性
  • 請求重定向: 能夠修改請求內(nèi)容或路徑,或?qū)⒄埱笾囟ㄏ虻狡渌Y源或服務(wù)器
  • 數(shù)據(jù)壓縮和緩存: 處理請求時,可以對響應(yīng)內(nèi)容進行壓縮,減少傳輸?shù)臄?shù)據(jù)量。同時,還能緩存常見請求的響應(yīng),降低后端服務(wù)器負擔(dān)

請求路徑:

  • 客戶端發(fā)送請求到負載均衡器
  • 負載均衡器通過分析內(nèi)容進行轉(zhuǎn)發(fā)
  • 請求達到具體的后端進程

響應(yīng)路徑:

  • 后端處理業(yè)務(wù)邏輯
  • 響應(yīng)經(jīng)過負載均衡器
  • 負載均衡器做一些優(yōu)化處理 例如緩存/壓縮等
  • 響應(yīng)給客戶端

可以發(fā)現(xiàn),響應(yīng)是會經(jīng)過負載均衡器的,實際上客戶端和nginx建立了連接,nginx和后端進程建立了連接實現(xiàn)了請求的轉(zhuǎn)發(fā)和請求的響應(yīng)

拓展2: 還有哪些負載均衡

使用rabbitMQ多個消費者也可以實現(xiàn)負載均衡的作用

grpc+etcd實現(xiàn)的負載均衡

到此這篇關(guān)于如何使用nginx代理ws或是wss的請求的文章就介紹到這了,更多相關(guān)nginx代理ws或wss內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Centos7下安裝部署nginx的三種方式詳解

    Centos7下安裝部署nginx的三種方式詳解

    Nginx?(engine?x)?是一個高性能的HTTP和反向代理web服務(wù)器,這篇文章主要為大家介紹了Centos7下安裝部署nginx的三種方式,希望對大家有所幫助
    2023-08-08
  • Nginx搭建流媒體FLV視頻服務(wù)器配置示例

    Nginx搭建流媒體FLV視頻服務(wù)器配置示例

    這篇文章主要介紹了Nginx搭建流媒體FLV視頻服務(wù)器配置示例,,需要的朋友可以參考下
    2014-08-08
  • Nginx轉(zhuǎn)發(fā)真實的IP的項目實踐

    Nginx轉(zhuǎn)發(fā)真實的IP的項目實踐

    本文介紹了Nginx中通過設(shè)置proxy_set_header指令來轉(zhuǎn)發(fā)請求并帶上真實IP,以便Java程序能夠正確獲取并判斷請求來源,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • nginx如何開通gzip壓縮傳輸文件

    nginx如何開通gzip壓縮傳輸文件

    Gzip壓縮是一種有效提升網(wǎng)站性能的方法,通過減少傳輸數(shù)據(jù)量和提高傳輸速度,Nginx服務(wù)器支持Gzip壓縮,適合壓縮HTML、CSS、JavaScript、JSON和XML等文本文件,配置中需設(shè)置gzip_types指定壓縮文件類型,gzip_comp_level設(shè)置壓縮級別
    2024-09-09
  • nginx+lua+redis防刷和限流的實現(xiàn)

    nginx+lua+redis防刷和限流的實現(xiàn)

    本文將介紹如何使用nginx lua redis實現(xiàn)防刷和限流,首先,我們將了解防刷和限流的基本概念和必要性,然后,我們將詳細介紹如何使用nginx lua redis實現(xiàn)防刷和限流,感興趣的可以了解一下
    2023-09-09
  • Nginx中的Gzip壓縮配置介紹

    Nginx中的Gzip壓縮配置介紹

    這篇文章主要介紹了Nginx中的Gzip壓縮配置介紹,本文先是對這些指令做了講解,然后給出一個配置示例,需要的朋友可以參考下
    2014-12-12
  • Nginx配置https的實現(xiàn)

    Nginx配置https的實現(xiàn)

    本文主要介紹了Nginx配置https的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Nginx配置超時時間的排查步驟

    Nginx配置超時時間的排查步驟

    在 Nginx 中設(shè)置了 keepalive_timeout、client_header_timeout 和 client_body_timeout 后仍然不起作用,所以本文給大家介紹了Nginx配置超時時間的排查步驟,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-11-11
  • Nginx優(yōu)化服務(wù)之網(wǎng)頁壓縮的實現(xiàn)方法

    Nginx優(yōu)化服務(wù)之網(wǎng)頁壓縮的實現(xiàn)方法

    這篇文章主要介紹了Nginx優(yōu)化服務(wù)之網(wǎng)頁壓縮的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Nginx服務(wù)器中414錯誤和504錯誤的配置解決方法

    Nginx服務(wù)器中414錯誤和504錯誤的配置解決方法

    這篇文章主要介紹了Nginx服務(wù)器中414錯誤和504錯誤的配置解決方法,分別對應(yīng)Request-URI Too Large和Gateway Time-out這樣的錯誤提示,需要的朋友可以參考下
    2015-12-12

最新評論

通江县| 明星| 呈贡县| 梓潼县| 寿阳县| 永泰县| 民勤县| 浑源县| 普兰县| 新闻| 手游| 肥乡县| 都江堰市| 赤城县| 都江堰市| 五指山市| 中牟县| 松潘县| 南安市| 临安市| 潼关县| 永丰县| 祁连县| 长乐市| 华阴市| 基隆市| 北票市| 柳州市| 安岳县| 奇台县| 镇江市| 郎溪县| 建德市| 西青区| 鄯善县| 和硕县| 张掖市| 北流市| 华容县| 慈利县| 哈密市|