Nginx怎么为Skywalking提供负载均衡-古蔺大橙子建站
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Nginx怎么为Skywalking提供负载均衡

这篇文章主要介绍“Nginx怎么为Skywalking提供负载均衡”,在日常操作中,相信很多人在Nginx怎么为Skywalking提供负载均衡问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nginx怎么为Skywalking提供负载均衡”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!           

成都创新互联专注于鹤峰企业网站建设,响应式网站建设,商城建设。鹤峰网站建设公司,为鹤峰等地区提供建站服务。全流程定制网站设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

    Apache Skywalking 是一款优秀的分布式链路追踪系统以及 APM 系统,但在社区的实现中,并没有着重考虑客户端负载的问题。因为社区已经有很多对 gRPC 的代理的成熟方案(Skywalking 中 Agent 探针与后端主要通过 gRPC 方式通信)。

    因此,如果是虚机或者一般容器(非Kubernetes平台)部署的时候,为了实现 Skywalking OAP 负载均衡,需要自己做一层反向代理。在网上查阅资料之后,发现 Nginx 已经支持 gRPC 代理。在 2018年3月17日,NGINIX官方宣布在nginx 1.13.10中将会支持gRPC,这一宣告表示了NGINX已完成对gRPC的原生支持。众所周知,gRPC 已经是新一代微服务的事实标准 RPC 框架。对于实现来说,可以用服务框架等手段来做到负载均衡,但业界其实还没有非常成熟的针对 gRPC 的反向代理软件。 NGINIX 作为老牌负载均衡软件对 gRPC 进行了支持,之前已经可以代理 gRPC 的 TCP 连接,新版本之后,还可以终止、检查和跟踪 gRPC 的方法调用:

  • 发布 gRPC 服务,然后使用 NGINX 应用 HTTP/2 TLS 加密、速率限制、基于 IP 的访问控制列表和日志记录;

  • 通过单个端点发布多个 gRPC 服务,使用 NGINX 检查并跟踪每个内部服务的调用;

  • 使用 Round Robin, Least Connections 或其他方法在集群分配调用,对 gRPC 服务集群进行负载均衡;

Nginx怎么为Skywalking提供负载均衡

在客户端和服务器应用程序之间插入 NGINX,为服务器应用程序提供了一个稳定可靠的网关。


使用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 服务器监听 gRPC 流量,并使用 grpc_pass 指令代理流量。 为 Nginx 创建以下代理配置,在端口 80 上侦听未加密的 gRPC 流量并将请求转发到端口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提供负载均衡”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


新闻标题:Nginx怎么为Skywalking提供负载均衡
文章网址:http://scgulin.cn/article/jsjesd.html