[Nginx] an upstream response is buffered to atemporary file

Category: Nginx | August 10, 2015

Proxy 운영중 발생하는 에러.

0. ErrorLog 에서 확인

나눔고딕폰트를 사용중에 발생한 에러임.

20xx/xx/xx xx:xx:xx [warn] ....an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/xxxx while readi
ng upstream, client: xxx.xxx.xxx.xxx, server: aaa.aaaa.aaa.com, request: "GET /font/NanumGothic-Regular.woff HTTP/1.1", upstream: "http:
//127.0.0.1:111/font/NanumGothic-ExtraBold.eot",

1. curl -I 로 크기 측정하기

$ curl -I http://aaa.aaa.aaa.com/font/NanumGothic-ExtraBold.eot
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
...
Content-Length: 752754
...

사이즈가 752k 보다 크게 cache를 설정해준다.

2. Cache 설정하기

http, location , server 중 아무데나 아래 값 추가.
curl -I로 측정된 길이에 따라 값은 변경할 수 있다.

        proxy_buffering   on;
        proxy_buffer_size    1024k;
        proxy_buffers        1024   1024k;
        client_body_buffer_size 1024k;
        proxy_busy_buffers_size 1024k;

3. Proxy 재시작

$ nginx -t
$ service nginx force-reload

실제로, 에러로그를 들여다 보기전에 특별한증상을 보이지 않으므로 찾기가 쉽지않을 수도 있다.