nginx에서 add_header 지시문의 중복을 피하는 방법은 무엇입니까?

nginx에서 add_header 지시문의 중복을 피하는 방법은 무엇입니까?

문서에는 다음과 같이 나와 있습니다.

이러한 지시어는 현재 수준에 정의된 add_header 지시어가 없는 경우에만 이전 수준에서 상속됩니다.

location내 문제는 다음과 같이 캐시하고 싶은 블록이 여러 개 있다는 것입니다 .

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
    expires 1w;
    add_header Cache-Control public;
}

하지만 이렇게 하면 블록 외부에 선언된 모든 헤더가 손실됩니다. 따라서 유일한 방법은 모든 위치 블록에서 해당 헤더를 복제하는 것입니다. 예:

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
    expires 1w;
    add_header Cache-Control public;
    add_header X-Frame-Options SAMEORIGIN;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
}

옳지 않은 것 같습니다. 어떤 아이디어가 있나요?

답변1

ngx_headers_more 모듈 뒤에 있습니다. https://www.nginx.com/resources/wiki/modules/headers_more/

그리고 그렇습니다. add_header의 동작은 정말 짜증스럽습니다 :)

관련 정보