티스토리 뷰

OS-서버-서비스/NginX

NginX PHP CORS 설정

공허공자 2016. 5. 2. 20:25

NginX 는 중첩 if 문(if 문 안에 또 if문)을 허용하지 않기에

아래처럼 변수에 값을 할당하고 합한것을 마지막에 비교하는 방식으로 조건문을 설정한다.

location ~ \.php$ {

    # Open CORS
    set $openCORS N;

    # *.도메인.com 이면 변수에 D 할당

    if ($http_origin ~* (https?://[^/]*\.도메인\.com(:[0-9]+)?)) {
        set $openCORS "D";
    }

    set $request_url $request_uri;

    if ($request_uri ~ ^/api/(.*)$) {
        set $openCORS "${openCORS}+API";
    }

    if ($openCORS = "D+API") {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
        add_header 'Access-Control-Allow-Methods' "GET, HEAD, OPTIONS";
        add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';
    }

}


댓글