Nginx 역방향 프록시 서버를 구성하여 HTTP로 가져 오는 모든 요청을 HTTPS (GET 메서드) 인 AWS Api 게이트웨이 끝점으로 리디렉션합니다. (이유를 알고 싶다면 API 게이트웨이를 통해 타사 공급 업체에 전화를 걸도록 AWS 람다 기능이 있지만 그 이유는 현재 SNI 때문에 ssl_handshake에 AWS가있는 버그가 있습니다. 나는 그에게이 HTTP 프록시 서버를 줄 것이다).Nginx proxy_pass to aws API 게이트웨이
것은 나는이 같은 시도했다 :
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name MY_SERVER_NAME;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location/{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://SOMETHING.execute-api.REGION.amazonaws.com/dev/RESOURCE/METHOD;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_buffering off;
}
}
하지만를 내가
http://MY_SERVER_NAME
내가 뭔가를 놓친 해요 같은 느낌을 호출 할 때 현재 나는 CloudFront를에서 403 받고 있어요 내 SSL을 구성 Nginx에서하지만 난 잘 모르겠어요.
다른 고객은 API 게이트웨이의 SNI 요구 사항을 해결하기 위해 CloudFront 배포를 API 게이트웨이 앞에 배치하기로 결정했습니다. –
이것은 작동 중입니다! 감사. 거기에 어떤 지침이 있습니까? 쉬운 일이 아니었다.또한 방금 전처럼 캐시가없는 프록시로 CDN 서비스를 사용하는 것은 상당히 추한 것입니다. AWS LoadBalancer와 같은 다른 서비스에서도 작동 할 수 있습니까? – yishaiz
Elastic Load Balancer는 EC2 인스턴스로만 트래픽을 보낼 수 있습니다. –