ここに根本的な誤解があると言いますが、nginxのようなものを使わずにポートフォワーディング、URLフォワーディングのようなことをしようとします。
ポート8182からデータベース(Neptune)に接続できるリモートLinuxインスタンス(EC2)があります。このインスタンスだけがNeptuneに接続でき、localhostから直接接続することはできません。また、localhostポート8182に接続して機能するデータベース用のUIツール(GraphExp)があり、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に転送されるように、これらのサーバー間の関係を設定するにはどうすればよいですか?追加パスを含める?
理想的には、NGinXなどの重い技術を避けるために、パッケージマネージャに付属のプレインストールまたはunixコマンドを含むソリューションが必要です。しかし、私は何でも効果があることから始めます。乞食はセレクタにはできません。 :-)
ご協力ありがとうございます!