ubuntu+nginx做负载均衡

近期的一个AI项目到了web服务部署阶段,由于项目需要对GPU进行实例分配,这里先从服务入口出发对web服务做个简单的负载均衡配置。

例如我们启动了两个AI Web服务:

服务实例1:127.0.0.1:8090

服务实例2:127.0.0.1:8091

采用nginx对该两个实例进行简单的负载均衡,步骤如下:

1、安装nginx

sudo apt install nginx 

ubuntu+nginx做负载均衡_第1张图片

2、查看nginx版本

nginx -V

ubuntu+nginx做负载均衡_第2张图片

3、进行业务的nginx配置

#进入nginx配置文件目录
cd /etc/nginx/conf.d
#创建AI业务配置文件
sudo touch ai.conf
#编辑ai.conf
vi ai.conf
#键入以下配置信息
upstream ai{
     #AI服务实例1
     server 127.0.0.1:8090;
     #AI服务实例2
     server 127.0.0.1:8091;
}
server {
     listen 80;
     server_name  127.0.0.8;
      location / {
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
             proxy_set_header Host $http_host;
             proxy_set_header X-Nginx-Proxy true;
             proxy_pass http://ai;
             proxy_redirect off;
      }

}
#最后保存并退出

4、启动nginx服务

# 启动
sudo systemctl start nginx
# 停止
sudo systemctl stop nginx
# 重启
sudo systemctl restart nginx

启动后在浏览器访问:127.0.0.1 出现以下页面说明nginx启动成功

ubuntu+nginx做负载均衡_第3张图片

5、启动两个AI服务实例

6、开始测试

ubuntu+nginx做负载均衡_第4张图片

ubuntu+nginx做负载均衡_第5张图片

通过日志可以看出服务实例1:8090进行了请求处理。

再次请求下:

ubuntu+nginx做负载均衡_第6张图片

这次是服务实例2:8091进行了请求处理,再请求下:

ubuntu+nginx做负载均衡_第7张图片

这次回到了服务实例1:8090处理请求,通过测试可以发现nginx转发是ABABABAB规则,因为我们没有设置weight权重,weight权重默认为1,如果需要修改转发规则可以详细了解下nginx的配置http://nginx.org/en/docs/。

你可能感兴趣的:(大数据/机器学习/人工智能)