내가 소유한 Linux 노드가 특정 패키지(정확히 말하면 REST API 패키지)에 대한 "라우터" 역할을 하도록 하고 싶습니다.
전체적인 상황은 이렇습니다. 나는 web-ui 프로그램을 만들었습니다. 이 프로그램은 클라이언트(노드-A라고 함)가 될 것이며 이 클라이언트는 내가 가지고 있는 서버(노드-B라고 함)에 REST API 요청을 보낼 것입니다. ... 나는 노드 B에 대해 도메인 이름은 물론, 노드 B에 대해 아무 것도 알리고 싶지 않습니다. 노드 B가 존재한다는 사실조차 알리고 싶지도 않습니다... 그 이유는 노드 B가 나에게 매우 중요하기 때문입니다. 아직은 없습니다. 안전성에 만족하는 단계에 이르렀습니다.
그래서 저는 노드 A에서 노드 B로 연결을 전달하기 위해 중간 노드(node-int라고 함)로 가지고 있는 다른 서버를 사용하는 것을 생각했습니다.
클라이언트 노드 A가 노드 B에 요청을 전달하고 노드 B로부터 응답을 수신하여 다시 노드 A로 전달하는 노드 int에 REST API 요청을 하도록 하려고 합니다.
유일한 문제는 iptables를 사용하여 이 작업을 수행하는 방법을 모르겠습니다. 필터 테이블(FOWARD 체인), 패킷 자체를 변경하기 위한 맹글 테이블, 아니면 nat 테이블을 사용해야 합니까?
저는 이 일에 무엇이 가장 좋은지 모르겠습니다. 그래서 경험이 더 많은 누군가가 저에게 최선의 접근 방식을 안내해 줄 수 있기를 바라면서 여기에 질문하는 것입니다.
감사해요.
답변1
이를 수행하기 위해 IP 테이블을 사용할 필요는 없지만 http 서버 구성을 사용하면 됩니다.
- 두 개의 http 서버를 설정하십시오. 하나는 공개적으로 표시되며(node-int) 다른 하나는 LAN 내에 있으며 외부 세계(node-B)에서는 액세스할 수 없습니다.
- 공용 서버에서 프록시를 활성화하고 여기에서 처리되는 URL, 노드 B로 전송되는 URL, 다른 서버로 전송되는 URL을 정의합니다.
물론 정확한 구성 명령문은 http 서버에 따라 다르므로 Apache에서는 다음과 같이 수행됩니다. https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
다른 http 서버에도 비슷한 내용이 있습니다.