.htaccess를 사용하여 Amazon S3 CloudFront에서 파일 제공

.htaccess를 사용하여 Amazon S3 CloudFront에서 파일 제공

내 이상적인 설정은 현재 클라이언트 사이트를 가져와서 URI와 일치하는 정규식이 포함된 .htaccess를 업로드하고, 특정 파일 확장자를 찾으면 동일한 경로를 사용하지만 도메인이 변경되는 것입니다.

즉.

일반 경로:

http://www.domain.com/something/images/someimage.jpeg
http://www.domain.com/assets/js/jquery.js

.htaccess로 번역하면 위의 내용이 다음과 같이 변합니다.

http://mycdn.other.com/something/images/someimage.jpeg
http://mycdn.other.com/assets/js/jquery.js

나는 이것을 몇 시간 연속으로 봤는데 운이 없었습니다. 다시 한번 말하지만, 이는 실제로 Amazon CloudFront를 활용하기 위한 것입니다. S3는 s3fs를 사용하여 백업 및 파일 저장을 위해 이미 웹 사이트에 마운트되어 있지만 CloudFront를 사용하지 않고 S3를 직접 사용하므로 문제가 해결되지 않습니다.

답변1

httpd-2.2.3-31.el5.centos에서 테스트 및 작업 중

리디렉션 방법:

RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [R]

R을 사용하면 페이지가 실제로 원하는 도메인일 수도 있고 아닐 수도 있는 새 도메인으로 리디렉션됩니다.

프록시 방법:

RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [P]

P는 리디렉션 대신 서버에서 오는 콘텐츠를 유지하는 프록시(mod_proxy가 설치되어 있다고 가정)를 발생시킵니다. 이렇게 하면 서버가 더 많은 작업을 수행하고 리디렉션보다 훨씬 더 많은 I/O 대역폭을 생성하게 됩니다. 프록시는 비용이 많이 들지만 콘텐츠를 위해 원격 서버나 CDN에 액세스하는 대신 모든 것이 단일 도메인에 표시되도록 합니다.

편집: request_filename 대신 request_URI를 사용하도록 업데이트했습니다. 그러면 존재하지 않는 하위 디렉토리 내부의 파일이 여전히 프록시/리디렉션됩니다.

관련 정보