2010-07-11 5 views
3

배경Apache + Passenger - Apache가 실행 중입니다. 그러나 요청

나뿐만 아니라 정적 파일을 많이 제공하는 루비 레일에 응용 프로그램을 실행하는거야에 응답하지.

내 설정이 현재 :

데비안 리눅스 레니 5.0 아파치 2.2.9 여객 2.2.10

문제

모든 것이 잘 실행됩니다. 나는 아파치 프로세스가 회전하는 것을보고, 승객 인스턴스가 생성되고 모든 것이 빠르고 부드럽게 작동합니다.

그런 다음 잠시 후 Apache가 요청에 더 이상 응답하지 않습니다. 클라이언트는 연결을 설정하고 "응답을 기다리는 중"이지만 아무 것도 나타나지 않습니다.

수동으로이 문제를 재현 할 수 없습니다. 때로는 다시 시작한 후 몇 시간이 걸리고 다른 일에는 며칠이 걸립니다. 여기 내가 찾은 것이 있습니다 :

아파치 프로세스가 가동 중입니다. 승객은 있지만 인스턴스가 스핀 업되지 않습니다 (아마도 비활성 기간 이후에 인스턴스가 종료되기 때문일 수 있습니다)

/var/log/syslog,/var/log/messages에는 오류 메시지 또는 문제가 없습니다. 아파치의 액세스 및 오류 로그, 내 레일 생산 로그에 없습니다. 아무것도.

아파치를 멈추고 시작할 때 모든 것이 정상으로 돌아갑니다.

여기에 어떤 일이 일어나는가? 어떻게 해결 될 수 있습니까?

+0

추가 참고 사항; 승객 때문에 mpm_worker를 실행 중입니다. MaxClients는 기본적으로 200으로 설정됩니다. 우리는 이미 이것을 1000 (그리고 ServerLimit에서 50)으로 올렸습니다. 그러나 우리는 여전히 같은 문제가 있습니다. – Ariejan

+0

요청이 발생하면 access_log가 변경됩니까? 그리고 그것이 일어날 때 당신이 승객을 끌면 무엇이 될 것인가. 또는 그냥 우아한 다시 시작 http – Falcon

+0

당신은 문제가 아파치 또는 승객에 있는지 여부를 확인하기 위해 nginx 승객을 시도 할 수도 있습니다. – inntran

답변

0

정적 파일에 대한 엄청난 부하 때문에 성능상의 이유로 별도의 서버 (이후의 Amazon S3 + CloudFront)에서 정적 파일을 호스팅하기로 결정했습니다.

현재 나의 추측에 따르면 Apache는 정적 파일에 대한 많은 요청을 처리 할 수 ​​없다는 것입니다. 도 Passenger를 수행합니다. 현재 설치 프로그램은 레일즈 애플리케이션 용 Nginx + Unicorn과 정적 파일 용 S3 + CloudFront입니다.

관련 문제