애플리케이션 인스턴스에 대한 IP 지정

애플리케이션 인스턴스에 대한 IP 지정

현재 주 서버를 가리키는 IP와 다른 IP를 사용하여 구입한 고정 IP 주소를 내 서버의 애플리케이션 인스턴스로 가리킬 수 있는 방법이 궁금합니다.

이것은 나를 완전히 혼란스럽게 했습니다. 두 가지 관련 명령을 알고 있지만 IP가 내 로컬 호스트의 특정 포트를 가리키도록 강제하는 방법을 모르겠습니다. 나는 그것이 ARP와 라우팅이라고 생각합니다. 나는 완전히 틀렸을 수도 있습니다.

내가 원하는 것은 다른 IP 주소를 다른 Java 인스턴스에 지정하는 것입니다.

저도 CentOS 5.9를 사용하고 있습니다.

답변1

IP 주소는 포트나 애플리케이션을 가리키지 않습니다. 이는 (가상) 머신, 컨테이너 또는 컨텍스트를 가리킵니다.

애플리케이션은 전달된 포트에 따라 bind컴퓨터의 모든 IP 주소를 수신할 수 있는 포트에서 수신 대기하거나 단일 IP 주소에서 수신 대기할 수 있습니다. 따라서 가장 좋은 방법은 애플리케이션이 올바른 IP를 사용하여 바인딩을 호출하도록 하는 것입니다. 예를 들어, 서로 다른 IP 주소를 수신하는 한 포트 80에서 수신하는 두 개의 서로 다른 프로그램을 가질 수 있습니다. 많은 프로그램에서는 청취할 IP를 지정할 수 있으며 때로는 10.0.0.1:123410.0.0.1이 IP이고 1234가 포트인 구문을 사용합니다. IP를 생략하면 기본값은 컴퓨터의 모든 주소인 0.0.0.0입니다.

애플리케이션에서 이 작업을 수행할 수 없는 경우 (Goldilocks가 암시한 대로) NAT를 사용하여 문제를 해결할 수 있습니다. 기본적으로 각 애플리케이션은 8080 및 8081과 같은 서로 다른 포트에서 수신 대기합니다. 그런 다음 포트 80을 리디렉션하도록 NAT 규칙을 설정합니다.

iptables -t nat -A PREROUTING -d 10.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 8080
iptables -t nat -A PREROUTING -d 10.0.0.2 -p tcp --dport 80 -j DNAT --to-destination 8081

물론 추가 방화벽 규칙을 추가하여 포트 8080 및 8081에 대한 직접 액세스를 차단할 수 있습니다.

ipvs를 사용하여 이 작업을 수행할 수도 있습니다. 아니면 프록시 서버. 다른 여러 가지 방법이 있을 수 있습니다.

관련 정보