활성 포트 리디렉션

활성 포트 리디렉션

환경:애플리케이션 서버로부터 특정 포트의 페이지를 요청하는 웹 서버입니다.

질문:애플리케이션 서버에서 실행 중인 특정 웹 애플리케이션을 다시 시작하는 동안 애플리케이션 서버에 페이지 요청이 들어오면 시작이 중단됩니다.

질문:웹 애플리케이션을 시작하는 쉘 스크립트 시작 부분에 특정 포트(또는 리디렉션)에 일종의 블록을 포함하는 것이 가능합니까? 이는 "즉시" 작동해야 하며, 물론 셸 스크립트 끝에서 반대로 작동해야 애플리케이션이 실행되고 나면 요청이 정상적으로 흐르게 됩니다.

답변1

응용 프로그램 서버 컴퓨터에서:

응용 프로그램을 시작하기 전에:

iptables -I INPUT -d <app server ip> --dport <app server port> -j REJECT

시작이 완료된 후:

iptables -D INPUT -d <app server ip> --dport <app server port> -j REJECT

필요한 경우 "애플리케이션이 로드 중입니다."라고 표시된 다른 서버로 트래픽을 리디렉션할 수도 있습니다. 이 경우 다음을 교체하십시오.

-j REJECT

그리고

-j DNAT --to-destination <ip address of other machine>

이 두 명령에 대해. 이렇게 하려면 IP 전달을 활성화해야 합니다. 구성이 필요합니다:

net.ipv4.ip_forward = 1

존재하다/etc/sysctl.conf

이는 다음 부팅 시 적용됩니다. 실행 중인 시스템에 즉시 적용하려면:

echo 1 > /proc/sys/net/ipv4/ip_forward

또한 수신 서버가 해당 서버에서 시작된 것처럼 보이도록 애플리케이션 서버에서 서버로의 트래픽을 위장할 수도 있습니다(즉, 소스 IP 주소를 다시 작성). 다음 방법으로 이를 수행할 수 있습니다.

iptables -t nat -I POSTROUTING -o <interface traffic will get out> -j MASQUERADE

또 다른 옵션은 애플리케이션 서버와 동일한 시스템에 다른 서버가 있고 "애플리케이션이 페이지를 로드 중입니다"라고 표시된 다른 포트에 있는 경우 트래픽을 해당 포트로 리디렉션할 수 있다는 것입니다. REJECT/DNAT 대신에 같은 아이디어입니다.

-j REDIRECT --to-port <other local server port number>

이 옵션은 애플리케이션 서버를 라우터로 변환할 필요가 없습니다 :) (ip_forward는 필요하지 않습니다)

관련 정보