如何将 war 文件部署到位于 NAT 后面的远程 Tomcat 服务器?

How to deploy a war file to a remote Tomcat server sitting behind NAT?

我们编写了一个脚本,实际上可以使用 curl 在远程 tomcat 服务器(本地网络内)上部署我们的应用程序,但挑战在于我们如何在远程 tomcat 上执行此操作服务器(在我们的本地网络之外)可能位于 NAT 后面并且可能具有动态 IP

我们的脚本片段

curl -u admin:12345 -T myApp.war http://192.10.10.184:8080/manager/text/deploy?path=/myApp

是否已经有解决方案?或者我们应该尝试其他方法来部署我们的应用程序

注:

我们的目标是能够将我们的应用程序(war 文件)部署到多个 tomcat 服务器(笔记本电脑)上,这些服务器可能跳转到不同的物理位置以进行测试。

此外,我们在云 (AWS) 中有一个 Jenkins 服务器,它将根据部署人员的请求执行脚本。

到目前为止我们看到了什么

  1. 端口warding,也许配置我们的部署人员想要连接到的每个路由器将是一项艰巨的任务,或者在某些情况下可能不允许
  2. ssh 反向隧道,可能会使我们的服务器处于危险之中或者可能根本不相关
  3. VPN foo

我们找到了一个稍微收费的解决方案,通过 VPN,我们现在可以部署在位于 NAT 后面的 Tomcat 服务器上,只要它们连接到我们的 VPN 服务器。唯一的缺点是部署速度受到严重影响。

OpenVPN https://openvpn.net/

为了帮助您设置自己的 VPN 服务器,您可以参考此 link https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide

此外,端口转发也能正常工作,但我们不能为每个 QA 在不同的端口上工作,所以我们现在坚持使用 VPN。