nginx - Nginx:启动微服务并回退到部署服务器
问题描述
我们有以下基础设施:
- 多个 Spring 微服务(MicroserviceA、MicroserviceB、MicroserviceC、...)
- 在我们的开发机器上独立启动每个微服务的可能性
- 共享开发部署。这是我们的“服务器”实例。有了这个,我们自动总是在我们的服务器上部署的每个微服务的最新版本。
由于我们现在有太多微服务无法在本地开发机器上启动所有微服务,因此我们正在试验是否能够使用共享服务器实例。我们也不想为每个主题重新配置所有微服务来决定哪些是本地启动的,哪些是从服务器上使用的。它应该以某种方式自动决定,也许由代理决定。
我们正在考虑 Nginx 配置,它将每个调用转发到我们的部署服务器,除了相应的微服务已经在 localhost 上运行。
这样的配置可能吗?还是存在一些更好的解决方案来解决我们的问题?
解决方案
在我们的例子中,在 nginx 中被剪断可以解决问题:
location @fallback_host {
proxy_pass http://fallback_host$request_uri;
}
error_page 502 =200 @fallback_host;
这会将本地主机上的每个未接来电(错误 502 - 错误网关)转发到具有相同 request_uri 的 fallback_host 机器
我们必须将每个微服务的信息输入到配置中:(例如,在 localhost 上截取映射“microservice-a”
location /microservices/ms-a/ {
proxy_pass http://127.0.0.1:8080$request_uri;
}
推荐阅读
- java - java.lang.NoSuchMethodError:org.hibernate.cfg.Configuration
- google-cloud-dlp - 敏感数据的 Google DLP 用户定义输出
- python-3.x - 无法使用 python3 TLS 连接到 GCP Cloud SQL(MySQL)
- java - 使用 Java 依次遍历目录
- javascript - 等效于 Flux 容器的 React Hooks
- powershell - Get-PSRepository 命令通过两个 Powershell ISE 提供两个输出
- hyperledger-fabric - 如何估计结构对等体将占用多少存储空间
- c++ - 如何简化以下 tensorRT makefile?makefile 看起来如此复杂,如何简化它以使其更具可读性?
- oracle - 从表中查询项目并将其发送到过程
- sql - 自外连接也得到空值