외부 API 서버에서 스크립트를 받아와서 페이지에 뿌려주는게 있는데


크로스도메인 문제 때문에 502에러가 뜹니다.


백단은 php나 아파치 없이 온리 nginx로만 처리하고 jsonp를 별도 API서버에서 받아오는 형식으로 되었습니다.


그래서 nginx 단에서 CORS 처리를 해주는데


내부에서 ssl 인증을 위한 reverse proxy pass가 있기 때문에 고려해서 설정 해주었읍니다.


설정은 다음과 같습니다. 내부 location 루트에 대한 세팅값입니다.


        set $cors '';

        if ($http_origin ~* (https?://.*\.api\.server?(:[0-9]+)?$|https?://.*\.api2\.server?(:[0-9]+)?$)) {

                set $cors 'on';

        }

        if ($request_method = OPTIONS) {

                set $cors "${cors}_options";

        }

        if ($cors = 'on_options') {

              add_header 'Content-Length' 0;

              add_header 'Content-Type' 'text/plain; charset=utf-8';

              add_header 'Access-Control-Allow-Origin' "$http_origin";

              add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

              add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';

              return 204;

        }

        if ($cors = 'on') {

              add_header 'Access-Control-Allow-Origin' "$http_origin";

              add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

              add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';

        }

        proxy_set_header        Host                $http_host;

        proxy_set_header        X-Real-IP           $remote_addr;

        proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;

        proxy_set_header        X-Forwarded-Proto   $scheme;

        proxy_set_header        Upgrade             $http_upgrade;

        proxy_set_header        Connection          "upgrade";

        proxy_read_timeout      86400;

        proxy_intercept_errors  on;

        proxy_http_version      1.1;


이상으로 세팅하고 테스트를 돌려보니 에러가 없어지긴했는데


가끔 페이지 리프레시 이후 502가 뜨다가 다시 api값을 받아오는 현상이 나타납니다.


아무리 삽질을 해봐도 모르겠는데 프갤에 아시는 분 계십니까