溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx怎么為Skywalking提供負載均衡

發(fā)布時間:2021-12-13 09:20:57 來源:億速云 閱讀:407 作者:iii 欄目:云計算

這篇文章主要介紹“Nginx怎么為Skywalking提供負載均衡”,在日常操作中,相信很多人在Nginx怎么為Skywalking提供負載均衡問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Nginx怎么為Skywalking提供負載均衡”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!           

    Apache Skywalking 是一款優(yōu)秀的分布式鏈路追蹤系統(tǒng)以及 APM 系統(tǒng),但在社區(qū)的實現中,并沒有著重考慮客戶端負載的問題。因為社區(qū)已經有很多對 gRPC 的代理的成熟方案(Skywalking 中 Agent 探針與后端主要通過 gRPC 方式通信)。

    因此,如果是虛機或者一般容器(非Kubernetes平臺)部署的時候,為了實現 Skywalking OAP 負載均衡,需要自己做一層反向代理。在網上查閱資料之后,發(fā)現 Nginx 已經支持 gRPC 代理。在 2018年3月17日,NGINIX官方宣布在nginx 1.13.10中將會支持gRPC,這一宣告表示了NGINX已完成對gRPC的原生支持。眾所周知,gRPC 已經是新一代微服務的事實標準 RPC 框架。對于實現來說,可以用服務框架等手段來做到負載均衡,但業(yè)界其實還沒有非常成熟的針對 gRPC 的反向代理軟件。 NGINIX 作為老牌負載均衡軟件對 gRPC 進行了支持,之前已經可以代理 gRPC 的 TCP 連接,新版本之后,還可以終止、檢查和跟蹤 gRPC 的方法調用:

  • 發(fā)布 gRPC 服務,然后使用 NGINX 應用 HTTP/2 TLS 加密、速率限制、基于 IP 的訪問控制列表和日志記錄;

  • 通過單個端點發(fā)布多個 gRPC 服務,使用 NGINX 檢查并跟蹤每個內部服務的調用;

  • 使用 Round Robin, Least Connections 或其他方法在集群分配調用,對 gRPC 服務集群進行負載均衡;


Nginx怎么為Skywalking提供負載均衡


在客戶端和服務器應用程序之間插入 NGINX,為服務器應用程序提供了一個穩(wěn)定可靠的網關。




使用Docker容器搭建NGINX Server

使用 Nginx 官方提供的docker image搭建server:


$ docker pull nginx:1.13.101.13.10: Pulling from library/nginx2a72cbf407d6: Pull completefefa2faca81f: Pull complete080aeede8114: Pull completeDigest: sha256:c4ee0ecb376636258447e1d8effb56c09c75fe7acf756bf7c13efadf38aa0acaStatus: Downloaded newer image for nginx:1.13.10

Nginx gRPC配置

Nginx 使用 HTTP 服務器監(jiān)聽 gRPC 流量,并使用 grpc_pass 指令代理流量。 為 Nginx 創(chuàng)建以下代理配置,在端口 80 上偵聽未加密的 gRPC 流量并將請求轉發(fā)到端口11800上的服務器。

grpc_proxy.conf 文件:


upstream grpcservers {    server 10.15.160.1:11800; # Skywalking OAP 后端 11800 地址}server {    listen 80 http2;    location / {        grpc_pass grpc://grpcservers;        error_page 502 = /error502grpc;}    location = /error502grpc {internal;        default_type application/grpc;        add_header grpc-status 14;        add_header grpc-message "unavailable";        return 204;}}

啟動 Nginx 容器

docker run --name mynginx4grpc -p 80:80 -v tmp4myworkspace:/etc/nginx/conf.d:ro -d nginx:1.17

其中,上述 Nginx 配置文件位于 tmp4myworkspace 目錄下。

到此,關于“Nginx怎么為Skywalking提供負載均衡”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI