apache

cache와 access-control-allow-origin 동시에 잡기 다중도메인

blog.and.kr mysop 2021. 9. 30. 15:28
728x90

access-control-allow-origin 설정을

도메인별로 설정하는건 쉽다.

 

html이든 아파치 설정에 아무곳에 넣어주면 설정은 된다.

 

다만 다중도메인 4개이상(SSL)을 동시에 같은 페이지 접속하면서

각 도메인별로 access-control-allow-origin의 도메인이 바뀌어야 하고

캐시(cache)가 걸려야 하는 조건을 걸어 보자...

 

캐시가 걸리지 않으면 동적으로 

도메인 별로 걸리도록 해주면 된다

 

SetEnvIf Origin "^http(s)?://.+$" AccessControlAllowOrigin=$0
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin

대충 이런식으로 설정을 넣어주면 된다.

그런데 캐시가 도메인별로 안걸린다.

 

이런경우 캐시 설정에서 

 

CacheIgnoreHeaders 항목에 Vary가 있는지 살펴보자

 

설정되어 있다면 설정을 제거한다.

 

 

그리고 방금 orgin설정에

Vary설정을 아래와 같이 넣어주자

 

Header merge Vary Origin

 

그리고 아파치 재시작

 

도메인별로 SSL인증서별로 캐싱이 각자 잘 걸린다.

 

access-control-allow-credentials: true
access-control-allow-origin: https://멀티도메인
access-control-max-age: 86400
age: 6
cache-control: public,  max-age=1200
content-encoding: gzip
content-length: 1157
content-type: application/json; charset=utf-8
date: Thu, 30 Sep 2021 06:26:59 GMT
server: Apache/2.4.48 (codeit) OpenSSL/1.1.1g PHP/7.2.34
vary: Accept-Encoding,Origin
x-cache: HIT from 캐시도메인명
x-cache-detail: "cache hit" from 캐시도메인명

 

출처 : https://gist.github.com/brianlmoon/2291111c5c69252c85f4

 

CORS example for Apache with multiple domains

CORS example for Apache with multiple domains. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

728x90