Nginx proxy_pass 응답이 잘 렸습니다


9

nginx를 사용하여 https 요청을 내 응용 프로그램 서버 (현재 8443에서 실행 중)에 프록시합니다.
이 앱 서버는 동적 페이지를 제공하며 일부는 jquery 축소를 포함합니다.
jquery가 잘린 것처럼 페이지가 잘못되었습니다 ... 파일 크기 제한이 있습니까?

내 nginx conf는 다음과 같습니다.

server {
listen      443;
server_name my_serv.com;
ssl                 on;
ssl_certificate     certificate.pem;
ssl_certificate_key privatekey.pem;

keepalive_timeout 70;

location / {
  proxy_pass https://localhost:8443;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_buffering off;
  proxy_buffers 8 8k;
}
}

2
오류 로그를 확인하십시오. 연결이 일찍 닫힌 이유를 알려줍니다.
kolbyjack

왜 nginx가 jquery.js와 같은 정적 파일을 제공하도록 허용하지 않습니까?
VBart

답변:


8

나는이 질문이 너무 오래되었다는 것을 알고 있지만 방금 같은 문제가 발생했습니다. nginx를 실행중인 사용자가 proxy_temp 디렉토리에 대한 쓰기 권한을 가지고 있는지 확인하십시오. proxy_buffers에 모두 보유 할 수없는 프록시 서버를 통해 더 큰 응답을 제공하는 경우 나머지 응답 데이터는 proxy_temp 디렉토리의 디스크에 기록됩니다. 권한이 부적절하거나 디스크 공간과 같은 다른 이유로 인해 응답이 없으면 응답이 잘립니다.

가장 쉬운 방법은 브라우저 캐시를 지우고 Chrome 개발자 도구를 연 상태에서 페이지를 다시로드하는 것입니다. 네트워크 탭에서 잘린 파일을 찾으십시오. 크기가 프록시 버퍼 크기 (귀하의 경우 64k)와 일치하면 nginx에 디스크에 쓰는 데 문제가있을 수 있습니다.

nginx proxy_temp_path에 대한 추가 정보 : http://wiki.nginx.org/HttpProxyModule#proxy_temp_path


1
당신의 대답은 비슷한 문제를 해결하도록 영감을주었습니다
Tyler Long

0

acces 로그에 잘린 파일에 대한 리턴 코드 304 (수정되지 않음)가 표시되면 브라우저 캐시를 지우십시오. 불행히도, nginx 설정에서 이것을 수정하는 방법을 찾을 수 없었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.