이 문제를 해결하려고 하면 매우 좌절감을 느낍니다.
로드 밸런서에서 SSL 인증서를 사용하는 AWS 환경이 있습니다. 또한 httpd.conf에는 모든 포트 80 트래픽을 443으로 리디렉션하는 다시 쓰기 규칙이 있습니다. 이 환경은 현재 서버와 완벽하게 작동하며 예상대로 443으로 리디렉션되고 ELB 상태 확인 ping이 예상대로 작동합니다.
우리가 가진 문제는 서버 빌드 문서를 잃어버렸고 이를 다시 만들어야 한다는 것입니다. 새로운 Amazon Linux 인스턴스에서 새로운 httpd 서비스를 구성하려고 할 때 기존 ELB를 통해 인스턴스가 사용 가능한 것으로 표시될 수 없습니다. ELB 상태 확인이 작동하지 않습니다(기존 인스턴스에서 작동함).
상태 확인은 다음과 같이 구성됩니다.
HTTPS:443/proxy/login.php
(이것은 변경되지 않으며 기존 인스턴스와 함께 작동합니다)
ELB 리스너는 다음과 같이 설정됩니다.
포트 80 -> 포트 80
포트 443 -> 포트 80(등록된 인증서 포함)
또한 작업 서버의 httpd.conf에는 다음과 같은 규칙이 있습니다.
<VirtualHost *:80>
RequestHeader set X-Forwarded-Proto "http"
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^test. [NC]
RewriteCond %{HTTP_HOST} !^signup. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
새 서버에 규칙을 추가했지만 운이 없습니다. 작업 서버에서 새 서버로 httpd.conf를 복사했지만 여전히 운이 없습니다. 새 서버에서 또 무엇을 놓치고 있나요? 걱정해야 할 다른 구성 파일이 있습니까?
답변1
모든 의견을 보내주셔서 감사합니다. 다음 항목에 대해 443으로의 리디렉션을 제외하는 virtualhost 섹션에 조건을 추가하여 이 문제를 해결했습니다.
RewriteCond %{REQUEST_URI} !^/proxy/login\.php$