Amazon Lightsail WordPress 인스턴스 앞에 Elastic Load Balancing(ELB) Application Load Balancer 또는 Amazon Lightsail 로드 밸런서를 배치할 때 리디렉션 루프를 생성합니다.
간략한 설명
예제 시나리오
Lightsail WordPress 인스턴스에서 리디렉션을 구성하기 위해 Bitnami HTTPS 구성 도구 bncert를 사용했습니다. 인스턴스는 HTTP에서 HTTPS로, 비 www 도메인에서 www 도메인으로 리디렉션합니다. 다음 예시와 같이 도메인 이름(example.com 및 www.example.com)이 Lightsail 인스턴스의 IP 주소를 가리키도록 DNS를 구성했습니다.
http://example.com > Lightsail 인스턴스 > https://example.com > Lightsail 인스턴스 > 200 OK
이 인스턴스 앞에 애플리케이션 로드 밸런서를 구성하고 도메인을 애플리케이션 로드 밸런서로 연결했습니다. Lightsail 인스턴스는 항상 HTTP 포트 80에서 요청을 수신하고 https://example.com으로 리디렉션하기 때문에 이 설정은 리디렉션 루프를 생성합니다.
example.com > http://xyz.ap-south-1.elb.amazonaws.com > http://your_lightsail_IP_address > https://example.com > https://xyz.ap-south-1.elb.amazonaws.com > http://your_lightsail_IP_address
해결 방법
Lightsail 로드 밸런서
리디렉션 루프를 피하려면 인스턴스에서 비 www로부터 www로의 리디렉션만 사용하세요. Lightsail 로드 밸런서에서 HTTP에서 HTTPS로의 리디렉션을 수행하세요.
1단계: bncert를 재구성하세요
1. bncert 도구를 사용하려면 다음 명령을 실행하세요.
sudo /opt/bitnami/bncert-tool
2. 기본 도메인 이름 및 대체 도메인 이름 입력의 경우 이미 Lightsail 인스턴스를 가리키는 도메인을 입력하세요. 또한 이 도메인의 www 하위 도메인을 입력하세요.
3. HTTP에서 HTTPS로의 리디렉션 활성화의 경우 N을 선택하세요. 이렇게 하면 HTTP에서 HTTPS로의 리디렉션이 꺼집니다.
4. 비 www에서 www로의 리디렉션 활성화의 경우 Y를 선택하세요.
5. www에서 비 www로의 리디렉션 활성화의 경우에서 N을 선택하세요.
6. 변경 내용을 검토하고 Y를 입력한 다음 Enter 키를 누르세요.
자세한 내용은 5단계: WordPress 인스턴스의 HTTPS 켜기를 Amazon Lightsail 문서에서 참조하세요.
2단계. HTTP에서 HTTPS로의 리디렉션을 통해 Lightsail 로드 밸런서를 생성합니다
1. Lightsail 로드 밸런서를 생성한 다음 여기에 인스턴스를 연결합니다.
2. example.com 및 www.example.com에 대한 SSL/TLS 인증서를 생성하세요. 도메인과 하위 도메인 이름을 사용자의 도메인 및 하위 도메인의 이름으로 바꾸세요.
3. TLS 리스너를 켜려면 Lightsail 로드 밸런서에 SSL/TLS 인증서를 연결하세요.
4. Lightsail 로드 밸런서의 프로토콜 섹션에서 방향 옵션을 토글하여 HTTP에서 HTTPS로의 리디렉션을 활성화하세요.
이제 Lightsail 로드 밸런서의 DNS 이름이 로드 밸런서의 www 하위 도메인으로 리디렉션됩니다.
3단계: DNS 업데이트
DNS 구성에서 example.com과 www.example.com이 Lightsail 로드 밸런서의 DNS 이름을 가리키게 하세요.
Application Load Balancers
Lightsail 인스턴스 앞에 있는 Application Load Balancers의 경우 Lightsail 인스턴스에서만 HTTP를 HTTPS로 리디렉션하세요.
1. Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
2. 로드 밸런싱에서 대상 그룹을 선택하세요.
3, 대상 그룹 생성을 선택합니다.
4. 이름이 tg-80 및 tg-443인 포트 80과 443에 대한 대상 그룹을 생성하세요.
5. 대상 유형의 경우, IP를 선택하세요.
6. 대상 등록, 네트워크의 경우, 다른 프라이빗 IP를 선택하고, Lightsail 인스턴스의 IP 주소를 지정하세요.
7. Application Load Balancer를 생성합니다. 포트 80에서 대상 그룹 tg-80으로 라우팅 리스너를, 그리고 포트 443에서 대상 그룹 tg-443으로 리스너를 생성하세요.
8. Application Load Balancer의 DNS 이름을 가리키도록 example.com 및 www.example.com의 DNS 레코드를 업데이트하세요.
이 구성을 통해 Application Load Balancer는 HTTPS에서 Amazon Lightsail에 HTTPS 요청을 전달합니다. 따라서 사용자는 200 OK 응답을 받게 됩니다.