我愿意打赌我在这里有一个根本性的误解,但我正在尝试做一些类似于端口转发和 url 转发的事情,而不使用像 nginx 这样的东西。
我有一个远程 Linux 实例 (EC2),可以在端口 8182 上连接到数据库 (Neptune)。只有该实例可以连接到 Neptune,我无法直接从本地主机连接。我还有一个用于数据库的 UI 工具 (GraphExp),它通过连接到本地主机端口 8182 来工作,并且我希望该 UI 工具通过我的远程实例连接到数据库。
用户界面 --> localhost:8182 --> ec2-instance.amazonaws.com:8182 --> neptune-db.amazonaws.com:8182/gremlin
问题是,为了对数据库进行查询,必须将其发送到路径/gremlin
。
例如,如果我通过 SSH 连接到 EC2 实例,我可以使用以下命令成功查询数据库
curl -X POST -H 'Content-Type:application/json' https://db-cluster-url-name.region.neptune.amazonaws.com:8182/gremlin -d '{"gremlin":"g.V().groupCount().by(label)"}'
另一方面,UI 工具仅向端口 8182 发送请求,没有路径。我尝试按如下方式设置端口转发:
ssh -vL 8182:db-cluster-url-name.region.neptune.amazonaws.com:8182 -i key.pem [email protected]
然而,请求被转发到db-cluster-url-name.region.neptune.amazonaws.com:8182
没有/gremlin
路径的地方。
如何在这些服务器之间建立关系,以便将本地端口 8182 的请求转发到数据库的端口 8182带有附加路径?
理想情况下,我想要一个涉及预安装或附带包管理器的 unix 命令的解决方案,这样我就可以避免 NGinX 等较重的技术。但我会从任何有效的事情开始,乞丐不能挑剔。 :-)
感谢您的帮助!