아마존 웹 서비스 VPC가 공용 및 개인 서브넷으로 설정되어 있습니다. DNS 요청을 수신하는 공개 서브넷에 nginx 서버가 있습니다. 그러나 이러한 요청을 개인 서브넷 웹 서버로 리디렉션하고 싶습니다. 필자는 개인 서브넷 시스템의 사설 IP (공개적으로 라우팅 할 수 없음)에 컬 (curl)을 사용하여 nginx 시스템에서 AWS/VPC 라우팅을 테스트했습니다. Curl은 예상 결과를 반환합니다. 그러나, nginx가 동일한 개인 IP에 대한 return 301을 수행하면, 리다이렉트가 라우팅 테이블 룰 외부에서 발생하고 유효한 주소로 인식되지 않는 것처럼 결과가 검색 엔진 결과가됩니다. 누락 된 nginx 구성이 있습니까?nginx aws 공용 서브넷에서 개인 서브넷으로 리디렉션하지 않습니다.
2
A
답변
4
예 - '리디렉션'은 클라이언트 브라우저에 301 또는 302 코드로 응답하고 액세스 할 새 주소임을 기억하십시오. 주소가 공개적으로 라우팅 할 수없는 경우 브라우저 프록시 서버 (nginx)가 아닌 리디렉션 주소를 요청하기 때문에 주소가 공개되지 않습니다. 이것을 증명하기 위해 nginx를 http://www.yahoo.com으로 리디렉션하도록 설정하면 아름답게 작동합니다.
대신 nginx의 proxy capabilities을 사용해야합니다. 즉, nginx는 요청을 받아서 프록시 서버에 전달하고 응답을 검색 한 다음 클라이언트로 보냅니다.
가장 기본적인 구현은 nginx를 구성 파일에 서버 지시어 내에서 위치 지시자를 만드는 것입니다 :
location/{
proxy_pass http://10.0.0.5/;
}
이 개인 IP에에 공용 IP에 대한 모든 요청을 전달합니다. 물론 요청/응답 헤더, 리소스 등으로 수행 할 수있는 많은 작업이 있습니다. 좋은 출발점은 Setting Up a Simple Proxy Server 일 수 있습니다. This link에는 몇 가지 구성 옵션이 있으며 좋은 예입니다.