我正在为大学项目建造一座智能温室,我们必须遵循微服务架构,并使用 cherrypy 。我提出的解决方案是让不同的微服务使用nginx,docker和docker-compose处理不同的遥测。
我正在使用nginx反向代理前端和所有微服务,但如何处理uri? Nginx可以使用<ids>
处理URI吗?
Cherrypy没有提供水平缩放,提供的RESTful-style dispatcher似乎只是提供整体方法。
我当前的NGINX:
server {
listen 80;
location / {
proxy_pass http://web:80;
}
location /api/v1/moisture {
proxy_pass http://moisture:5001;
}
location /api/v1/light {
proxy_pass http://moisture:5001;
}
}
我的API应该看起来像这样/api/v1/greenhouse/<id>/moisture
,因为moisture
可以像humidity
或light
一样是我可以测量的每个遥测。
目标是nginx可以向湿度服务发送/api/v1/greenhouse/<id>/moisture
的请求,向湿度服务/api/v1/greenhouse/<id>/humidity
发送请求,因为cherrypy无法提供解决方案。