문제

공유 호스팅 계정에서 ssl_requirements 플러그인을 사용하고 있습니다. 이 호스팅 제공 업체는 승객을 사용하여 레일을 관리합니다. SSL이 필요한 페이지로 이동하려고 할 때까지 모든 것이 잘 작동합니다 (추가하여 시행됩니다. ssl_required 필터). 이런 일이 발생하면 승객 충돌이 발생하여 500 오류를 다시 보냅니다. 오류가 읽습니다.

 Passenger encountered the following error:
 The application spawner server exited unexpectedly: Broken pipe

 Exception class:
 PhusionPassenger::Railz::ApplicationSpawner::Error

기본 시나리오는 다음과 같습니다.

  1. 사용자는 HTTP를 사용하여 민감하지 않은 데이터를 탐색합니다.
  2. 사용자는 가입 양식으로 이동합니다 (HTTPS가 필요한 경우)
  3. SSL_Requirement는 사용자가 적절한 프로토콜을 사용하지 않고 HTTPS를 사용하는 URL로 리디렉션하는 것을 확인합니다.
  4. 승객은이 요청을 받고 새로운 Rails 신청서를 생성하려고합니다.
  5. 그것이 사용될 때 spawn_application 방법 오류가 발생하고 충돌이 발생합니다

문제는 문제가 어디에서 발생하는지 모른다는 것입니다. HTTPS 접두사를 수동으로 입력 할 수 있고 상황이 잘 작동하기 때문에 HTTPS에 문제가 될 수 있다고 생각하지 않습니다. 이 문제는 SSL_Requirement 플러그인 또는 승객 이이 새로운 HTTPS 요청을 처리하는 방식에 있다고 생각합니다.

너희들은 이와 같은 시나리오를 만난 적이 있습니까? 그렇다면 이것을 해결하기 위해 몇 가지 자원을 가리킬 수 있습니까?

감사.

도움이 되었습니까?

해결책

Dreamhost가 너무 많은 메모리를 사용하여 앱을 죽였 기 때문에 승객 오류가 발생할 수 있습니다.

Spawn을 사용하고 있다는 점을 감안할 때 아마도 Spawn은 완전히 새로운 Rails 프로세스를 만듭니다.

새로운 앱 인스턴스를 스폰하지 않는 일을 시도하십시오. 그러나 그것은 SSL의 문제가 아니라고 내기 할 것입니다.

다른 팁

자신의 가상 호스트 Apache 구성에 액세스 할 수 있습니까? 그렇다면 ssl_requirement를 사용하는 대신 redirect 지시문을 사용하여 HTTP URL에서 HTTPS URL로 리디렉션하는 것이 좋습니다. 나는 승객과 함께 그렇게했고 일이 잘 작동합니다. (따라서 승객 처리 HTTP 또는 SSL에 문제가 없습니다. 내 추측은 SSL_Requirement 플러그인과 승객 사이의 비 호환성입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top