HTTP에서 HTTPS로의 리디렉션이 AWS ALB에서 작동하지 않음
나는 워드프레스 사이트에 ECS를 사용하고 로드 밸런싱 및 SSL 오프로드를 위해 ALB(Application Load Balancer)를 사용하고 있습니다. ALB는 포트 80 및 443에서 두 개의 서로 다른 리스너를 사용하고 있습니다.리디렉션 규칙은 포트 80 수신기에 연결됩니다.
Redirect tohttps://#{host}:443/#{path}?#{query}
Status code:HTTP_301
웹 서버는 php-fpm으로 nginx이며 포트 80에서 청취합니다.nginx에서는 리디렉션이 수행되지 않습니다.
그래서 기본적으로 제가 원하는 것은 http (user req) -> https (ALB redirection) -> http (nginx) 입니다.
이제 문제는 ALB가 메인 홈 페이지의 http 트래픽을 다음과 같이 리디렉션하지 않는다는 것입니다.
http://example.com -> http://example.com (ALB 리디렉션 없음) -> http://example.com (nginx)
그러나 같은 도메인에서 작동하지만 다음과 같은 다른 URL에서 작동합니다.
http://example.com/page -> https://example.com/page (ALB 리디렉션) -> http://example.com/page (nginx)
편집: ALB Listener 규칙 링크입니다.
다른 답변이 작동하지 않으면 Security Group이 포트 80에서 인바운드 연결을 허용하는지 다시 확인합니다.
- 로드 밸런서로 이동
- 클릭하기
Description
. 아래로 스크롤Security Groups
보안 그룹을 찾습니다. - Security group(보안 그룹)을 클릭하고 포트 80에서 인바운드 연결이 허용되는지 확인합니다.추가하지 않으면 추가합니다.포트 80에서 트래픽을 리디렉션하더라도 여기서 차단되면 해당 단계에 도달하지 못할 것입니다.
저도 같은 문제가 있었습니다.HTTP 수신기를 제거하고 다시 추가한 후 제대로 작동하기 시작했습니다.
무엇을 잘못하고 있는지 확실하지 않지만 포트 80 수신기는 https로 리디렉션을 처리할 수 있습니다.
포트 80 수신기를 수동으로 업데이트하거나 클라우드 정보를 사용하는 경우 다음과 같이 나타납니다.
Listener80:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- RedirectConfig:
Port: 443
Protocol: HTTPS
StatusCode: HTTP_301
Type: redirect
LoadBalancerArn: !Ref ALB
Port: 80
Protocol: HTTP
수신기 구성은 다음과 같습니다.
언급URL : https://stackoverflow.com/questions/55163791/http-to-https-redirection-not-working-on-aws-alb
'programing' 카테고리의 다른 글
WooCommerce에서 정가전 판매가격 표시 (0) | 2023.10.17 |
---|---|
동일하지 않은 값에 대한 mysql 구문 (0) | 2023.10.12 |
malloc failure는 어떻게 감지합니까? (0) | 2023.10.12 |
Angularjs: ocLazy로드 대 Requirejs (0) | 2023.10.12 |
DataContract Serializer를 사용하는 "Type not expected" - 하지만 단순한 클래스일 뿐 재미있는 것은 없습니까? (0) | 2023.10.12 |