모든 IP에서 포트 80의 모든 요청을 포트 9000으로 리디렉션하려고 합니다.
eth0에 여러 IP 주소를 호스팅하는 서버 1대가 있습니다. 내 문제를 해결하기 위해 모두 아파치를 사용하여 포트 9000을 수신한다고 가정하겠습니다.
기본 IP 주소(.106)만 올바르게 작동하고 트래픽을 리디렉션합니다.
Chain PREROUTING (policy ACCEPT 2132 packets, 256K bytes)
pkts bytes target prot opt in out source destination
128 7236 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.106 tcp dpt:80 redir ports 9000
151 8624 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.107 tcp dpt:80 redir ports 9000
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 21 1574 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000
내 가상 호스트 구성의 173.234.60.107:9000(또는 다른 IP)에서 수신 대기 중인 다른 모든 항목은 기본 /var/www/index.html 페이지로 리디렉션됩니다.
예: www.tiprocker.com - ip .106 -> SSL mvmdesign.org - ip .107 -> 기본 페이지에 성공적으로 연결 및 리디렉션됩니다.
단일 서버 인스턴스에서 여러 IP로 작업할 때 특정 현상이 발생합니까? 또한 완전히 다른 IP에서 nodejs를 사용하여 80에서 9001까지의 모든 트래픽을 리디렉션하려고 시도했지만 이 경우 페이지를 찾을 수 없으므로 iptables가 있는 항목이 제대로 작동하지 않는 것 같습니다.
편집하다: 내 Apache 구성에 대한 추가 정보는 다음과 같습니다.
httpd.confhttps://gist.github.com/maruf89/8f162b49addc5dc49902
// separate file
NameVirtualHost 173.234.60.106:9000
NameVirtualHost 173.234.60.106:443
NameVirtualHost 173.234.60.107:9000
NameVirtualHost 173.234.60.107:443
mvmdesign.org vhost 파일https://gist.github.com/maruf89/363b6edd111834ad78bb
답변1
기본 페이지가 표시되면 리디렉션이 작동합니다(바이트 및 패킷 카운터가 >0이므로 볼 수 있듯이) 이는 Apache의 구성 문제입니다.