답변:
이를 위해서는 리버스 프록시를 사용해야합니다 (예 : Apache 2.4). 와 mod_proxy_wstunnel .
프론트 엔드로 사용하고 연결을 적절한 백엔드로 터널링하십시오.
운영 체제는 수신 된 패킷을 보낼 프로세스를 알 수 없으므로 단일 프로세스 만 동일한 IP 주소 및 프로토콜에 대해 특정 포트에서 수신 할 수 있습니다.
원하는 것을 달성하려면 포트 80에서 수신 대기하고 올바른 대상으로 트래픽을 전달 하는 리버스 프록시 를 사용해야 합니다. 여러 가지 방법이 있습니다. 예를 들어 WebSocket 요청을 전달하도록 웹 서버 (Apache)를 설정하거나 HTTP 트래픽을 전달하도록 Node.js를 구성 할 수 있습니다. 사용 가능한 옵션을 조사하고 필요에 가장 적합한 옵션을 선택하십시오.
다른 사용자가 이미 언급 한 리버스 프록시 옵션과 함께 머신에 여러 IP 주소를 할당 할 수 있습니다. 이는 IPv4의 비용이들 수 있습니다 (또는 서버가 호스팅되는 위치에 따라 제공되지 않을 수도 있음). IPv6을 사용할 수있는 위치에 있지 않아야합니다 (예 : 하나 또는 둘 다에 연결하는 사람 또는 서비스가 IPv6 가능) . 이 방법으로 두 서비스 모두 다른 주소에서 포트 80을 청취 할 수 있습니다.
포트 80 만 언급했듯이 HTTPS를 사용하지 않는 것으로 가정합니다. 리버스 프록시 옵션을 사용하는 경우 다중 이름 SSL 인증서가 필요하거나 SNI를 구성하고 일부 오래된 클라이언트 (XP의 경우 오래된 Android 버전)에서는이를 수행 할 수 없다는 사실에 따라야합니다. 오류없이 연결하십시오. 다중 주소 옵션은 할당 된 추가 주소가 필요하지만이 문제를 피할 수 있습니다.