2010-05-22 1 views
1

nginx에서 작동하도록 connection_aborted 함수를 가져올 수 없습니다. 필자가 테스트 한 코드는 다음과 같습니다.PHP connection_aborted가 nginx에서 작동하지 않습니까?

<?php 
ignore_user_abort(true); 
ob_implicit_flush(); 
$i = 0; 
while (!connection_aborted()) { 
    echo $i; 
    $i++; 
    sleep(1); 
} 
file_put_contents('test',$i); 

Apache에서는 약간 지연되지만 올바르게 작동합니다. ie "3"일 때 브라우저에서 중지 버튼을 누르면 'test'파일에 '8'이 표시됩니다. 그건 허용 마진이지만, nginx에서, 그것은 'test'파일에 아무 것도 출력하지 않는 것 같습니다.

답변

5

이 Nginx의 구성을 확인, 그것은해야

fastcgi_ignore_client_abort off; 

이 구성 키에는 기본값으로 off이 있으므로 fastcgi_ignore_client_abort이 전혀 없더라도 스크립트가 예상대로 작동해야합니다.

0

내 생각은 "connection_aborted()"를 "ABORTED"연결
을 감지 할 수없는 것입니다 (그리고 스크립트가 여전히 실행)

+0

그것은 또한 내 추측이지만, 당신은 그것이 nginx의 버그라고하지 않는 한 해결책을 찾고 있어요 ... – TheOnly92

+0

정적 콘텐츠에 대해서만 nginx와 lighttpd를 사용했습니다. 죄송합니다... –