我有一个依赖于Microsoft Azure VM上托管的node.js服务器的移动应用程序。我目前正在创建一个我想要所有API指向的新Azure VM,但由于我已经在Google Play上发布了应用程序,已经下载该应用程序的用户将拥有将所有API调用指向旧版本的代码VM。我想为旧VM的服务器代码添加逻辑,该代码重新路由所有传入的HTTP请求以转到新VM,并将新VM的响应返回给客户端,即使他们直接向旧VM发送请求VM服务器。从本质上讲,旧VM将充当中间人。有人知道如何使用Node吗?
答案 0 :(得分:0)
正如@ yjwong的评论所说,如果您有一个独立的域名来为旧应用程序提供服务并将旧Azure VM的主机名绑定为DNS中的CNAME记录,则可以更改CNAME记录以绑定新Azure VM的主机名将使用旧应用程序的用户指向新/正确的服务器。
关于CNAME记录,请参阅维基百科条目https://en.wikipedia.org/wiki/CNAME_record。
否则,您可以安装和使用像Nginx这样的反向代理重定向&将旧应用访问的网址重写为新/正确服务器的网址。
以下是一些步骤,以帮助您做到这一点。
ngx_http_proxy_module
。ngx_http_proxy_module
http://nginx.org/en/docs/http/ngx_http_proxy_module.html或使用关键字nginx
搜索一些相关文章,reverse proxy
,redirect
等请注意,对于上面的步骤2,请确保同一Azure VNet上的两个Azure VM(旧版和新版)并使用新Azure VM的静态专用IP地址(内部),因为一个Azure VM不允许直接访问其他Azure VM的公共地址。因此,您需要使用反向代理中的私有IP地址设置新/正确服务器的远程地址。
您可以参考下面的这些文档,为两个Azure VM设置Azure虚拟网络。