Nginx实现接口分发

需求背景:

当前服务器上部署了多个服务,由于某些服务计算量逐渐增大,导致该服务器负荷过大,需要将某些比较耗资源的服务迁移到其他服务器上,且不能改变原先接口的调用方式,实现切换对下游用户无感知。

实现思路:

在当前服务器上搭建Nginx服务,监听被访问的接口,并将该接口分发到其他服务器上,实现访问和计算分离,将具体的计算任务迁移到高性能机器上。

监听多个端口服务,并依据一定的规则转发到其他服务器上。需要将接收到的接口请求分发到不同的服务器上,且URI保持一致,只是将IP+port进行映射。

Nginx实现接口分发_第1张图片

nginx配置:

配置文件中,$document_uri 变量可实现不同机器上资源路径一致。便于相同服务代码自动化部署,不用关注URI路径。

# 只转发ip+port,资源路径保持不变,实现跨机器部署。
server {
    listen       8001;
    server_name  localhost;
    
    # 设定查看Nginx状态的地址
    location / {
        proxy_pass   http:10.119.112.152:8001$document_uri
    }
    }

server {
    listen       8002;
    server_name  localhost;
    
    # 设定查看Nginx状态的地址
    location / {
        proxy_pass   http:10.119.112.153:8002$document_uri
    }
    }

前期遇到的小问题,抽空总结一下。

你可能感兴趣的:(学习总结,Nginx,接口分发)