首页 > 解决方案 > Nginx:启动微服务并回退到部署服务器

问题描述

我们有以下基础设施:

由于我们现在有太多微服务无法在本地开发机器上启动所有微服务,因此我们正在试验是否能够使用共享服务器实例。我们也不想为每个主题重新配置所有微服务来决定哪些是本地启动的,哪些是从服务器上使用的。它应该以某种方式自动决定,也许由代理决定。

我们正在考虑 Nginx 配置,它将每个调用转发到我们的部署服务器,除了相应的微服务已经在 localhost 上运行。

这样的配置可能吗?还是存在一些更好的解决方案来解决我们的问题?

标签: nginxmicroservices

解决方案


在我们的例子中,在 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; 
     }

推荐阅读