2012-01-30 5 views
4

아파치 모듈 mod_fcgid를 사용하여 요청을 처리하는 cgi 스크립트 (티켓 유효성 검사 및 유사한 처리)를 제공하는 것보다 여러 서버에 문제가있어 처리 결과에 따라 서버의 파일을 제공합니다.apache mod_fcgid 문제

나는 로그에 반복적으로 다음과 같은 오류가 점점 계속 :

[Mon Jan 30 23:11:41 2012] [warn] [client 95.35.160.193] mod_fcgid: error reading data, FastCGI server closed connection 

[Mon Jan 30 23:11:41 2012] [warn] [client 95.35.160.193] (32)Broken pipe: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function 

[Mon Jan 30 23:13:34 2012] [warn] [client 37.8.52.128] mod_fcgid: can't apply process slot for /var/www/cgi-bin/assetx.fcgi 

이러한 문제는 서버가 느린 원인이 될 수 있고 다른 시간 서비스를 일시적으로 사용할 수없는 오류가 발생합니다.

서버는 내가 현재 다음과 같이 다음에있는 fcgi 지시어를 구성, 그들에 큰 트래픽을 가지고 : 서버에

FcgidMaxRequestsPerProcess  0 
FcgidMaxProcesses  300 
FcgidMinProcessesPerClass 0 
FcgidIdleTimeout  240 
FcgidIOTimeout 240 
FcgidBusyTimeout 300 

평균 부하는 프로세스의 수는 평균 250 개 프로세스에, 정상입니다.

저는이 문제와 관련하여 며칠 동안 연구를 해봤습니다. 일부는 허가 문제라고 말하면서 제안을 따르면 도움이되지 못했습니다. 위의 매개 변수를 조정하려했으나 시도한 최종 값이지만 작동하지 않았습니다. 나는 또한 아파치 대신에 사용되는 nginx를 시도하고 있지만 nginx를 사용하는 서버에서이 높은로드로 cgi 스크립트를 실행하는 적절한 방법을 찾을 수 없습니다.

이 문제를 해결하려면 어떻게해야합니까?

답변

1

아파치가 성공적으로 연락하기 전에 앱이 죽어 가고 있습니다. 대답은 앱이 죽어가는 이유를 찾는 것입니다.

오류 조건에서도 FastCGI 프로세스가 종료되거나 종료되지 않아야합니다. Apache는 FastCGI 스크립트가 계속해서 존재할 것으로 기대합니다.

당신은 cgi 스크립트가 있다고합니다. FastCGI를 지원하기 위해 어떻게 수정 했습니까?

일반적으로 CGI :: Fast와 같은 것으로 전환하고 종료 및 종료 할 모든 호출을 제거하고 CGI :: Fast while 루프를 사용하여 스크립트를 리팩터링해야합니다.