2009-04-10 5 views
2

이상한 점이 있습니다 :이상한 http gzip 문제

mod_php로 아파치 2에 nginx 리버스 프록시 요청을 받았습니다.

(firefox 3.1b3을 사용하는) 사용자가 최근에 정상적인 탐색 중에 산발적 인 "What should firefox do with this file?" popups을 받기 시작했다고보고했습니다. 우리는이 문제에 대한 다른보고를하지 않았으며 스스로 재현 할 수 없었습니다.

Nginx 및 Apache 로그를 확인했습니다. 오류 로그에는 아무것도 나타나지 않고 요청에 대한 일반적인 HTTP 200이 표시됩니다.

나는 다운로드 한 파일을 보내 주었고 HTML로 생성되었습니다.

개구 바이트 시퀀스 마법 GZIP 헤더이다

\x1F\x8B\x089608\r\n<!DOCTYPE HTML ... 

하고 파일로 끝나는 :

...</html>\n\r\n0\r\n\r\n 
여기 1F8B08

개구 문자 편의상 C 이스케이프는

wget을 통해 동일한 URL을 가져 오면 예상대로 시작됩니다. 신비한 여는 바이트와 닫는 바이트는 보이지 않습니다.

누구도 이와 비슷한 것을 보았습니까? 이것은 FF 3.1b3 버그 일 수 있습니까?

답변

1

정확하게 그와 같은 문제는 본 적이 없지만 서버에서 gzip으로 압축 된 콘텐츠를받은 경우 gzip 압축 콘텐츠를 처리 할 수 ​​있다고 웹 서버에 요구하는 투명 프록시와 관련하여 한 번 문제가 발생했습니다 압축 해제하지 않고 gzip 헤더를 제거하고 그 결과를 브라우저에 보냈습니다. 우리가 보았던 행동은 당신이 묘사 한 것입니다 : 정상적인 웹 페이지 였어야했는지에 대한 저장/열린 파일 대화 상자. 이 경우 문제의 브라우저는 IE였습니다.

문제가 관련이 있는지는 잘 모르겠지만 실험으로 프록시와 Apache 사이의 요청을보고 gzipped인지 확인하거나 요청에 대한 gzip 압축을 끕니다. 아파치가 문제를 해결하는지 확인하십시오. 그렇다면 프록시에서 gzip 처리에 문제가있을 것입니다.

+0

jboque와 함께 해요 ... 스트림에 콘텐츠가 추가되면 브라우저 버그처럼 들리지 않습니다. PHP ini에서 gzip 처리기를 사용할 수 있는지 확인하고 mod_deflate가 아파치에서 실행되는지 확인하고 설정을 확인하십시오. – zombat

1

wget이 압축 된 응답을 요청하지 않습니다. 또한 응답 헤더를 인쇄 할 -v를 추가하려고 할 수

curl --compressed <URL> 

, 그리고 합리적인 Content-Type가 반환되고 있는지 확인하십시오보십시오.