2013-03-22 2 views
1

ruby ​​1.9.3 및 rvm을 사용하고 있습니다. --ssl 옵션을 사용하여 가상 서버를 실행하고 싶습니다. "thin start --ssl"을 실행하는 것이 트릭을해야한다는 답변을 읽었습니다. 하지만 내 개발 환경에서 나는 터미널 실행 --ssl 얇은 시작 실행"thin start"를 실행할 때 데이터가 수신되지 않습니다

Booting Thin 
Rails 3.2.11 application starting in development on http:// 0. 0. 0 .0 :3000 
Call with -d to detach 
Ctrl-C to shutdown server 
: 나는 "레일의 얇은"와 같은 명령을 실행하면

Using rack adapter 
Thin web server (v1.5.1 codename Straight Razor) 
Maximum connections set to 1024 
Listening on 0.0.0.0:3000, CTRL+C to stop 
And in my web-browser in localhost:3000: 

No data received 
Unable to load the webpage because the server sent no data. 
Here are some suggestions: 
Reload this webpage later. 
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

는 다른 메시지와 함께,하지만 작동을

왜 이런 일이 일어 났는지는 모르겠지만 (어쩌면 rvm 때문에) 얇은 것이 적절하게 작동하고 있습니다. "rails s"명령에서이 ssl 옵션을 설정할 수 없기 때문에 첫 번째 vertions "thin start --ssl"을 실행하려고했습니다.

+0

어떤 상태 코드가 브라우저에 표시됩니까? Thin에 대한 SSL 인증서 설정이 없기 때문에 그것이 문제가되는지 궁금합니다. 그런 식으로 준비 했니? – jordelver

+0

글쎄, 나는 얇은 레일 서버를 실행하고 http://stackoverflow.com/questions/3604303/how-can-i-pass-ssl-options-into-rails-server-http://tackoverflow.com/questions/3604303/how-can-question-ssl-options-intra-ravel-server-and-rails-server-home.html에서 제안 된대로 SSL 인증서를 전달하려고 시도했다. in-rails-3-0/7862689 # 7862689. 그러나 상태 코드 "오류 107 (net :: ERR_SSL_PROTOCOL_ERROR) : SSL 프로토콜 오류가 발생했습니다." –

답변

0

레일즈 앱 앞에 웹 서버 (예 : nginx)를 실행하는 것이 훨씬 쉽고 (더 현실적인) 해결책이 있습니다. 이 웹 서버는 http 및 https 트래픽을 수신 한 다음 모든 것을 포트 3000으로 Rails (thin) 서버로 전달합니다.

+0

로컬로 SSL을 설정하려면 nginx 및 승객을 설치 한 상태에서 프로덕션 서버를 구성하는 것보다 쉬울 것이라고 생각했습니다. 내 응용 프로그램에서 문제가 서버의 SSL 구성 또는 응용 프로그램의 다른 ssl_requirement 파일 때문인지 모르겠습니다. –

+0

이 서버는 어떻게 설정합니까? 승객과 nginx를 우분투에 설치 했는데도 여전히 로컬로 작동하도록 구성하는 방법을 모르겠습니다. –

+0

다음은 샘플 구성에 대한 링크입니다. 정말로 당신이하는 일은 nginx가 80/433에서 청취하고 양쪽 리스너가 같은 Rails 앱을 가리키고있는 것입니다 : http://candidcode.com/2009/09/12/sample-nginx-with-phusion-passenger-configuration- 파일 - 사용 가능 - ssl / – messick

1

"데이터를받지 못했습니다"라는 이유를 발견했습니다. 다른 사람이 같은 오류가있는 경우 :

"thin start --ssl"을 실행하여 내 서버가 https 요청에만 응답합니다. 모든 http 요청에 응답하지 않았으므로 데이터가 없었습니다 (바보). 기본적으로 http 요청은 포트 80으로 이동하고 https 요청은 포트 443으로 이동합니다.

"thin start --ssl"은 ssl을 로컬에서 디버깅하는 데 적합하며 응용 프로그램 컨트롤러에서 ssl을 강제 실행하여 전체 응용 프로그램을 테스트 할 수 있습니다 데이터가 수신되지 않는 동일한 상황에서 자신을 찾지 못함).

관련 문제