2016-08-31 1 views
1

서버 옵션 I.E.를 설정하려고합니다. 포트, 호스트, 등등 그러나 난 config.ru 파일 내에서 이것을하는 방법에 아무것도 찾을 수 없습니다. 또한 시도랙 마운트 파일 안에 서버 옵션을 설정하십시오.

configure { set :server, config[:server][:handler].to_sym } 
Rack::Handler.default.run(App, config[:server]) 

:

Rack::Handler::pick(['puma']).run App, config[:server] 

심지어 :

configure { set :server, config[:server].delete(:handler).to_sym } 

그래서 핸들러가 그

나는 해시로 설정 옵션을 넣어 다음 일을 시도했습니다 서버 설정 해시에 있지 않고 여전히 ...

주사위가 없습니다.

{ 
    :handler => "puma", 
    :host => "127.0.0.1", 
    :port => 3000, 
    :threads => "0:16", 
    :verbose => true 
} 

그러나 단지 무시됩니다 해시 설정, 나는 3000에 포트 있지만 기본적으로 8080와 응용 프로그램의 부하를 설정합니다

설정 해시입니다.

run 명령이 존재하지 않는다는 오류도 있습니다 (분명히, 저는 그것을 사용하지 않았습니다).

그래서 수정 사항도 좋을 것입니다.

내가 할 수있는 적절한 방법이 있지만 문서화 된 것을 찾기가 어려운 이유는 무엇입니까? 나는 생각할 수있는 것처럼 Google에 많은 검색어를 사용했지만 아직 완전히 정확한 것은 없습니다.

답변

3

대부분의 사람들이 당신이하려는 일을하지 않기 때문에 잘 설명되어 있지 않습니다. :-) 사람들은 보통 푸마 구성을 config/puma.rb에 저장하거나 명령 줄에 전달합니다. Procfile에서.

나는 사지에 여기에 와서 App이 Sinatra 앱 또는 이와 유사한 것으로 가정합니다. Sinatra configure {} 블록에서 이러한 옵션을 설정하는 주요 문제는 랙 업이 클래스를 실행하고 이러한 명령문을 실행하는 시점에 이미 포트 및 스레드 풀 크기와 같은 것을 설정하기에는 너무 늦다는 것입니다. 지금까지 누락 된 run 방법이 간다면, 나는 당신이 config.ru에서 run App을 원한다고 생각합니다. 당신이 무엇을 위해 가고 있는지 확실하지 않습니다.당신은 포트 또는 다른 rackup 옵션을 설정하려면

#\ -s Puma 

, 당신과 같이 그것을 할 수 있습니다 :

당신은 파일의 상단에이를 추가하여 푸마를 사용하는 rackup 말할 수

#\ -s Puma -p 3000 

나에 대한 푸마 특정 옵션 :

#\ -s Puma -p 3000 -O Threads=0:16 -O Verbose=true 

이는 (주로) 푸마의 README에 설명되어 있습니다및 here.

require 'sinatra/base' 
require 'puma' 

class App < Sinatra::Application 
    configure do 
    set :server, :puma 
    set :port, 3000 
    set :server_settings, :Threads => '0:16', :Verbose => true 
    end 

    run! if $0 == app_file 
end 

이 그럼 당신은 그냥 보통의 루비 스크립트, 예를 들면처럼 응용 프로그램을 실행할 수 있습니다

또 다른 옵션은 완전히 rackup 및 config.ru를 건너 뛰고 당신의시나 응용 프로그램에 모든 것을 구축하는 것입니다 ruby app.rb.

하루가 끝나면 퓨마 구성 파일을 만들어 대신 사용하는 것이 좋습니다. 그것은 훨씬 쉽고 깨끗하며 이해하기 쉽습니다. 푸마 설정을 환경 또는 다른 방법이나 프로세스의 결과에서 가져와야하는 경우 여기에서 수행 할 수 있습니다. 행운을 빌어 요.

+0

둘 다 올바르지 만 이것은 더 광범위한 답변입니다. – Thermatix

2

#\으로 시작하는 행의 옵션을 config.ru에 지정할 수 있습니다 (첫 번째 행이어야 함). 당신이 rackup에 명령 줄 옵션을 지정하는 것처럼 당신은 그 지정 : docs for this are hidden away on the wiki

#\ -s puma -o 127.0.0.1 -p 3000 -O Threads=0:16 -O Verbose 

# require everything and set up middleware etc. 

run MyApp 

합니다.

사용할 수있는 옵션은 rackup -s puma -h을 확인하십시오. -O은 사용중인 서버로 옵션을 전달합니다 (Puma는 ThreadsVerbose을 수락 함).

+0

당신은 나를 때려! 나는 나의 것을 쓰는 데 너무 오래 걸렸다. :-) – mwp

+0

옵션 시퀀스는 config.ru의 첫 번째 라인 일 필요는 없습니다 (예 : require 문이나 Builder # 사용 이후에 올 수 있음).하지만 Builder # 실행보다 먼저 실행해야합니다. 그럼에도 불구하고 파일의 맨 위에 놓는 것이 가장 좋습니다. ** 참고 **, 발견 된 첫 번째 옵션 시퀀스 만 구문 분석됩니다. 자세한 내용은 lib/rack/builder.rb의 Builder.parse_file을 참조하십시오. –

관련 문제