서버관련

nginx 에서 (없는)이미지파일 PHP 프레임웍 안타게 설정하기

2014. 8. 28. 13:40

아파치도 비슷하지만, NGINX에서 PHP프레임웍을 사용하려면,

보통 아래와 같이 기술하게 된다.

 

        if (!-e $request_filename)     {

               rewrite ^/(.*)$ /index.php?/$1 last;
        }
        # 파일이 존재하지 않으면, 프레임웍의 index.php 로 rewrite

 

이런경우 없는 이미지파일 호출이나 css, js 파일을 호출하더라도.

파일이 없는경우 무조건 index.php 로 가게 되니 서버의 부담이 많아진다. (악의적인호출포함?)

 

아래와 같이 수정

 

        set $framework 'NO';
        if (!-e $request_filename)     {
               set $framework 'OK';
        }
        if ($uri ~ '(\.css|\.js|\.ico|\.gif|\.jpg|\.png|\.swf)')
               set $framework 'NO';
        }
        if ($framework = 'OK') {
               rewrite ^/(.*)$ /index.php?/$1 last;
               break;
        }

 

위와 같이 하여 확장자가 이미지파일이거나 css/js 등일 경우 파일이 존재하지 않으면, 프레임웍을 안타게 설정한다.

확장자는 알아서 추가..ㅎㅎ