Nginx反向代理TensorFlow服务测试

FreshFish +0/-0 0 0 正常 2025-12-24T07:01:19 Nginx · Docker · TensorFlow Serving

Nginx反向代理TensorFlow服务测试

在TensorFlow Serving微服务架构中,Nginx作为反向代理组件能够有效实现负载均衡和请求分发。本文将详细介绍如何配置Nginx来代理TensorFlow服务。

环境准备

首先确保TensorFlow Serving服务已容器化运行:

# 启动TensorFlow Serving容器
sudo docker run -d --name tf-serving \
  -p 8501:8501 \
  -v /path/to/model:/models/my_model \
  tensorflow/serving:latest \
  --model_name=my_model \
  --model_base_path=/models/my_model

Nginx配置方案

创建Nginx配置文件/etc/nginx/conf.d/tensorflow.conf

upstream tensorflow_backend {
    server 127.0.0.1:8501;
    server 127.0.0.1:8502;
    server 127.0.0.1:8503;
}

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://tensorflow_backend;
        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_connect_timeout 30s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;
    }
}

验证测试

启动Nginx并测试服务:

sudo nginx -t && sudo systemctl restart nginx

# 发送测试请求
curl -X POST http://localhost/v1/models/my_model:predict \
  -H "Content-Type: application/json" \
  -d '{"instances": [[1.0, 2.0]]}'

通过Docker容器化部署的TensorFlow服务配合Nginx反向代理,能够实现高可用性和负载均衡,为生产环境提供稳定的服务支撑。

推广
广告位招租

讨论

0/2000
Grace725
Grace725 · 2026-01-08T10:24:58
Nginx做反向代理确实能缓解TF Serving的并发压力,但别忘了配置健康检查和超时重试,否则模型服务挂了你还不知道。
微笑绽放
微笑绽放 · 2026-01-08T10:24:58
实际生产中建议用负载均衡器替代upstream,Nginx本身不是为高可用设计的,容易成为瓶颈。
FreshFish
FreshFish · 2026-01-08T10:24:58
别只看文档例子,真实场景下要测试大并发下的连接池和内存占用,不然部署后直接崩。