여기에 근본적인 오해가 있다고 장담하는데, 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 명령이 포함된 솔루션을 원합니다. 하지만 저는 무엇이든 효과가 있는 것부터 시작하겠습니다. 거지는 선택자가 될 수 없습니다. :-)
당신의 도움을 주셔서 감사합니다!