C3 Cloudfront Cache Controller
글을 발행할 때 CloudFront 캐시를 모두 지우는 간단한 플러그인입니다. 워드프레스 전면에서 CloudFront를 쉽게 사용할 수 있습니다.
기능
-
wp_is_mobile() CloudFront 헤더를 통해 기기 뷰어 유형을 확인하세요. 이제
HTTP_CLOUDFRONT_IS_MOBILE_VIEWER및HTTP_CLOUDFRONT_IS_TABLET_VIEWER를 지원합니다. -
미리보기 URL 미리보기 페이지에서 플러그인은 CloudFront 캐시를 방지하기 위해
post_date쿼리를 추가합니다. 또한 CloudFront 캐시를 방지하기 위해wordpress_loginuser_last_visit쿠키를 설정합니다.
사용자가 로그아웃하면 wordpress_loginuser_last_visit 쿠키가 삭제됩니다.
무효화 (캐시 삭제) 페이지 URL
이 플러그인은 다음 페이지 URL을 CloudFront 무효화 API로 전송합니다.
- 최상위 페이지 URL
- 게시된 글 페이지 URL
- 카테고리 아카이브 페이지 URL
AWS IAM 정책 예시
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudfront:GetDistribution",
"cloudfront:ListInvalidations",
"cloudfront:GetStreamingDistribution",
"cloudfront:GetDistributionConfig",
"cloudfront:GetInvalidation",
"cloudfront:CreateInvalidation"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
참고: 상세 무효화 정보를 보려면 cloudfront:GetInvalidation 권한이 필요합니다. 이 권한이 부여되지 않으면 다른 플러그인 기능에 영향을 주지 않고 상세 보기 기능이 정상적으로 비활성화됩니다.
환경 변수를 통해 설정을 추가하기
플러그인은 다음 변수들을 정의하여 구성할 수 있습니다:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYC3_DISTRIBUTION_ID
이러한 변수들을 코드처럼 wp-config.php 파일에 넣을 수 있습니다
php
define( 'AWS_ACCESS_KEY_ID', '' );
define( 'AWS_SECRET_ACCESS_KEY', '' );
define( 'C3_DISTRIBUTION_ID', '' );
쿠키
이 플러그인은 사용자에게 wordpress_loginuser_last_visit라는 쿠키를 설정합니다.
이 쿠키는 사용자가 글이나 콘텐츠를 미리 볼 때 CDN 캐싱을 방지합니다.
알림판에서 로그아웃하면 플러그인은 사용자에게서 이 쿠키를 삭제합니다.
7.1.0
- [기능] 무효화 경로, 호출자 참조 및 상태를 표시하는 모달 팝업을 통해 무효화 상세 보기 화면 추가
- [수정] 아카이브 페이지가 없는 글 유형에 대해 잘못된 경로가 반환되는 문제 수정
7.0.1
- [업데이트] 보안 강화 및 PHP 8.x 호환성 향상을 위해 AWS API 호출 처리 기능 개선
7.0.0
- [변경 취소] AWS SDK 종속성을 제거하고 사용자 정의 HTTP CloudFront API 클라이언트 구현
- [업데이트] c3_log_invalidation_list 필터를 사용하여 포괄적인 무효화 로깅 기능 추가
- [업데이트] 구성 가능한 CloudFront 지역 및 HTTP 타임아웃 설정 추가
6.1.6
- [수정] null 허용 타입 힌트를 추가하여 PHP 8 구문 오류 수정
- [수정] Invalidation_Service.php에서 동적 속성 생성과 관련된 사용 중단 경고 수정
- [수정] Cron_Service.php에서 동적 속성 생성과 관련된 사용 중단 경고 수정
- [수정] 테스트 파일에서 PHP 7.4 구문 오류 수정
6.1.5
- [수정] AWS SDK를 설치할 때 aws.phar 대신 composer를 사용하도록 변경
6.1.4
- [업데이트] post_type_archive_link 지원 추가
6.1.3
- [수정] v6.0.0부터 필터 c3_invalidation_items가 사라지는 문제 해결
6.1.2
- [수정] PHP 버전 비교 문제
6.1.1
- [수정] 플러그인 비활성화 문제
6.1.0
- [업데이트] post_ids를 기준으로 캐시 제거
6.0.0
- [중대한 변경 사항] 전체 코드 재작성
- [업데이트] cron 작업 로그를 표시하기 위해
c3_log_cron_invalidation_task필터 추가 - [업데이트] 번들로 제공되는 AWS SDK 경로를 변경하거나 제거할 수 있도록
c3_aws_sdk_path필터 추가
5.5.1
- [업데이트] 최상위 메뉴를 설정 하위 메뉴로 교체
5.5.0
- [업데이트] AWS 자격 증명에 정의된 변수 사용 가능
5.4.2
- [버그 수정] 미리보기 페이지에서 쿠키 경로 설정
5.4.1
- [버그 수정] 무효화 쿼리 cron 이벤트에서 정의되지 않은 경로 인덱스 오류 수정
5.4.0
- [업데이트] 업데이트 미리보기 수정 플러그인
5.3.4
- [버그 수정] 사소한 버그 수정
5.3.3
- [SDK 변경] SDK 교체
5.3.2
- [버그 수정] AMIMOTO 관리형 호스팅으로 사용할 경우 EC2 역할을 사용하도록 수정
5.3.1
- [필터 추가] 필터를 사용하여 AWS SDK 버전 선택 가능
5.3.0
- [SDK 업데이트] PHP 5.6 이상 버전을 사용하는 경우 AWS SDK v3 사용
5.2.1
- [AMIMOTO Managed용] WP-CLI로 실행되도록 버그 수정
5.2.0
- [필터 추가] 요청 무효화 재시도 기능을 하는 wp-cron 등록을 비활성화할 수 있음.
- [README] IAM 정책 예시를 보기 위해 README 업데이트
5.1.0
- [업데이트 미리보기 기능] 사용자가 로그인할 경우 CloudFront 캐시를 사용하지 않도록 쿠키 설정
- [업데이트 미리보기 기능] 사용자가 로그아웃할 경우 CloudFront 캐시를 방지하기 위해 쿠키 해제
5.0.0
wp_is_mobile()함수에서 CloudFront 뷰어 매개변수 지원. (버전 4.9.0 이상)
4.4.0
- 사소한 버그 수정
- AMIMOTO 관리형 호스팅 사용자를 위한 기능 추가
4.3.1
- cron 실행 간격 수정
'c3_invalidation_interval,c3_invalidation_cron_interval,c3_invalidation_item_limits필터 추가.- 기본 무효화 간격 및 항목 업데이트
4.3.0
- 여러 글을 동시에 발행하는 경우 cron 이벤트 예약
4.2.1
- ‘c3_credential’ 필터 위치 수정
4.2.0
- AMIMOT 대시보드 지원
4.1.0
- 무효화 로그 표시
4.0.3
- Travis의 자동 배포
4.0.2
- WP-CLI 매개변수 검사 추가 (wp c3 flush)
- transient_key 변경
4.0.1
- 버그 수정 (Nephila Clavata와의 충돌)
4.0.0
- AWS SDK 버전 3 지원
- ‘c3_add_setting_before’ 액션 후크 제거 대신 ‘c3_after_title’ 필터 후크 사용.
- ‘c3_add_setting_after’ 액션 후크 제거 대신 ‘c3_after_auth_form’ 필터 후크 사용.
3.0.0
- CF Preview Fix 플러그인 포함
- 이름 변경
2.4.3
- 예외 처리 버그 수정
2.4.2
- CLI 버그 수정
2.4.1
- CLI 버그 수정
2.4.0
- WP-CLI 명령어 추가 (설정 업데이트)
2.3.0
- WP-CLI 명령어 추가
2.2.2
- 강제 무효화
2.2.1
- 오타 수정
2.2.0
- EC2 인스턴스 역할을 사용하기 위한 필터 추가
- t.w.org에서 번역 가능
2.1.1
- URL 무효화 오류가 너무 많이 발생하는 문제 해결
2.1.0
- 무효화 URL을 사용자 정의할 수 있는 후크 추가
- 새로운 무효화 url, 용어 지원
- 수동 무효화 버튼이 추가됨
2.0.2
- AWS SDK 변경
- wokamoto의 코드 리팩토링
- 무효화된 URL
2.0.1
- AWS SDK 변경
- wokamoto의 코드 리팩토링
- 무효화된 URL
1.0
- 최초 출시.
6.1.0
- [수정] 플러그인 비활성화 문제
