12/25/2015

[RUBY] WEBrick을 이용한 간단 Ruby 웹 서버 만들기(Writing Web Server Code whit Ruby WEBrick)

예전에 Ruby on Rails를 다루면서 알게된 webrick 웹서버 모듈입니다.
이 모듈은 쉬운 방법으로 웹 서버를 구성할 수 있도록 지원하는 좋은 모듈이지요.

gem을 통해 쉽게 설치가 가능합니다.
# gem install webrick

require로 해당 모듈을 불러온 후 WEBrick 하단 메소드를 이용하여 웹서버를 구성할 수 있습니다.
일단 httpt서버 기준으로 HTTPServer를 이용하여 구성이 가능합니다.

WEBrick::HTTPServer의 new 메소드를 통해 Bind할 Address와 Port 등을 지정한 후 웹 서버를 생성합니다.

server = WEBrick::HTTPServer.new({:BindAddress => '127.0.0.1',
                                  :Port => 4040})
그리고 생성된 서버 객체에 mount 메소드를 통해 각각 페이지와 연동될 디렉토리 or 행위를 매핑해줍니다.

server.mount('/', WEBrick::HTTPServlet::FileHandler, Dir.pwd+"/Public_html",
                    {:FancyIndexing => true})
위 방법으로는 "/" 접근 시 FileHandler를 통해 Dir.pwd(현재 실행 디렉토리) 하단 Public_html 폴더로 넘어가도록 설정하는 코드입니다.

파일로 매핑하지 않고 직접 코드를 작성하는 방법도 있습니다.

server.mount_proc '/' do |req, res|
  res.body = 'Hello, world!'
end
이외에도 쉽게 Proxy, Vm환경 등 여려가지 웹 환경을 구성할 수 있습니다.
자세한 내용은 ruby-doc 참고햐시면 도움될 것 같습니다.

http://ruby-doc.org/stdlib-2.0.0/libdoc/webrick/rdoc/


require 'webrick'

server = WEBrick::HTTPServer.new({:BindAddress => '127.0.0.1',
                                  :Port => 4040})
server.mount('/', WEBrick::HTTPServlet::FileHandler, Dir.pwd,
                    {:FancyIndexing => true})
server.mount_proc '/test' do |req, res|
  res.body = 'CODEBLACK / TEST'
end
trap(:INT){server.shutdown}
server.start

Reference

http://d.hatena.ne.jp/lemniscus/20090722/1248261257
http://tobyho.com/2009/09/16/http-server-in-5-lines-with/
http://ruby-doc.org/stdlib-2.0.0/libdoc/webrick/rdoc/


HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment