하위 도메인을 특정 포트로 전달하는 방법은 무엇입니까?

하위 도메인을 특정 포트로 전달하는 방법은 무엇입니까?

이 질문이 이전에 요청되었다면 사과드립니다. 아직 적절한 해결책을 찾지 못했기 때문에…네.

특정 도메인 "example.com"에 접속했을 때 제대로 작동하게 하고 싶습니다. 즉, 포트 80으로 이동하여 예상대로 Apache와 상호 작용해야 합니다.

다른 하위 도메인 "mc.example.com"에 액세스할 때 Apache 웹 서버에 액세스하는 것을 원하지 않습니다. 포트 4096에서 수신 대기하면서 다른 프로그램과 상호 작용하기를 원합니다. 따라서 "mc.example.com"에 액세스하면 "example.com:4096"과 동일/유사한 기능을 갖게 됩니다. 이 서비스는 마인크래프트입니다

세 번째 하위 도메인 "vpn.example.com"에 액세스할 때 포트 687에서 수신 대기하면서 다른 서비스와 상호 작용하기를 원합니다. 서비스는 openVPN입니다

이를 수행하는 쉬운 방법이 있습니까? 그렇다면 무엇입니까? Apache에서 VirtualBox를 구성하는 작업이 포함됩니까(시도했지만 비참하게 실패했습니다. xD)? 아니면 ipTables를 사용하여 수행할 수 있습니까? 그게 의미가 있다면 저는 32비트 Centos 5.5를 실행하고 있습니다. (아마도 Centos의 최신 버전입니다.)

답변1

아무것도 할 수 없습니다. 원격 컴퓨터가 TCP 연결을 열면 연결하려는 IP 주소와 포트 번호만 알려줍니다. IP 주소를 얻기 위해 DNS에서 어떤 호스트 이름을 찾았는지 알려주지 않습니다. (이름 기반 가상 호스트는 Host:HTTP 프로토콜의 일부로 전송되는 헤더를 사용하지만 이는 연결이 열린 후에 전송됩니다.)

그러나 다른 서비스에 액세스하는 경우 원격 컴퓨터는 다른 포트 번호에 연결하도록 요청해야 하며 해당 포트 번호를 기반으로 라우팅할 수 있어야 합니다.

Host:이러한 프로그램이 모두 HTTP를 사용하는 경우 헤더를 기반으로 적절한 서버에 요청을 프록시 할 수 있어야 합니다 .

답변2

이것이 오래된 질문이라는 것을 알고 있지만 아마도 해결책이 있을 것입니다. vhost@work에 대한 구성을 찾았습니다. 가상 호스트 구성에서 이것을 시도해 보십시오: (이것이 작동하는지 100% 확신할 수 없습니다! :))

누구든지 이것을 확인할 수 있습니까?

<VirtualHost *:80>
    ServerName sub.domain.com
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests           Off
    ProxyPass               /       http://sub.domain.com:12345/
    ProxyPassReverse        /       http://sub.domain.com:12345/

   #... etc

관련 정보