Nginx:启动微服务并回退到部署服务器
Nginx: Start Microservies with Fallback to deployment Server
我们有以下基础设施:
- 多个Spring微服务(微服务A、微服务B、微服务C……)
- 可以在我们的开发机器上以本地方式独立启动每个微服务
- 共享开发部署。这是我们的 "server" 实例。有了这个,我们自动始终部署在我们服务器上的每个微服务的最新版本。
由于我们现在有太多微服务无法在我们的本地开发机器上启动所有这些服务,我们正在试验是否能够使用共享服务器实例。我们也不希望为每个主题重新配置所有微服务来决定哪些在本地启动,哪些从服务器使用。它应该以某种方式自动决定,也许由代理决定。
我们正在考虑 Nginx 配置,它将每个调用转发到我们的部署服务器,除了相应的微服务已经 运行 在本地主机上。
这样的配置可以吗?或者存在一些更好的解决方案来解决我们的问题?
在我们的例子中,在 nginx 中剪下后就可以了:
location @fallback_host {
proxy_pass http://fallback_host$request_uri;
}
error_page 502 =200 @fallback_host;
这会将本地主机上的每个未接来电(错误 502 - 错误的网关)转发到我们的 fallback_host 具有相同 request_uri
的机器
而且我们必须将每个微服务的信息输入到配置中:(例如,在本地主机
上跟随截取的地图 "microservice-a"
location /microservices/ms-a/ {
proxy_pass http://127.0.0.1:8080$request_uri;
}
我们有以下基础设施:
- 多个Spring微服务(微服务A、微服务B、微服务C……)
- 可以在我们的开发机器上以本地方式独立启动每个微服务
- 共享开发部署。这是我们的 "server" 实例。有了这个,我们自动始终部署在我们服务器上的每个微服务的最新版本。
由于我们现在有太多微服务无法在我们的本地开发机器上启动所有这些服务,我们正在试验是否能够使用共享服务器实例。我们也不希望为每个主题重新配置所有微服务来决定哪些在本地启动,哪些从服务器使用。它应该以某种方式自动决定,也许由代理决定。
我们正在考虑 Nginx 配置,它将每个调用转发到我们的部署服务器,除了相应的微服务已经 运行 在本地主机上。
这样的配置可以吗?或者存在一些更好的解决方案来解决我们的问题?
在我们的例子中,在 nginx 中剪下后就可以了:
location @fallback_host {
proxy_pass http://fallback_host$request_uri;
}
error_page 502 =200 @fallback_host;
这会将本地主机上的每个未接来电(错误 502 - 错误的网关)转发到我们的 fallback_host 具有相同 request_uri
的机器而且我们必须将每个微服务的信息输入到配置中:(例如,在本地主机
上跟随截取的地图 "microservice-a" location /microservices/ms-a/ {
proxy_pass http://127.0.0.1:8080$request_uri;
}