Rails는 기본적으로 Webrick이란 실행기를 가지고 있습니다.
개발환경으론 별다른 설정도 필요없고, Command 명령어인 Rails server (Rails3기준)만으로 실행되기때문에 편합니다.
하지만 성능에 큰 문제가 있습니다. 특히 서버가 Windows일때는 local접속 말고는 쓸수가 없는 수준입니다. 현재는 Mongrel를 사용하고 있지만, 새로 세팅한 곳은 이미 Apache2가 돌고 있어서 이번에는 Pasenger를 사용해서 Apache2와 연동해보았습니다.
결론부터 말하면, 너무너무너무 쉽군요. 10분만에 끝냈습니다. 환경은 다음과 같습니다. 하이시커 Blog를 참고했습니다.
Ubuntu 10.4
Apaceh2
Rails 3.0
passenger 3.0.2
1. passenger 설치합니다.
2. apache 모듈 설치합니다. 다음 명령어로 실행하는데 친절하게 안내를 해주고, 필요한 모듈이 설치 되어있지 않을땐 적절한 안내를 해줍니다. 세팅한 서버 같은 경우는 APR(Apache Partable Runtime) 를 설치했습니다. 이하 내용은 모두 이 명령어의 진행과정입니다.
3. 설치 [/code]및 설정이 끝나면 Apache Configuration을 수정할 정보를 보여줍니다.
이는 설치하는 시스템에 따라 Path 가 다를 수 있습니다.
PassengerRoot /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.2
PassengerRuby /usr/local/ruby/bin/ruby
/etc/apache2/mods-available/ 에 rails.load 정도의 이름으로 위의 내용을 추가하고,
이것을 /etc/apache2/mods-enable/에 링크를 걸어 활성화시킵니다.
4. 마지막으로 VirtualHost 설정을 하고 Apache2 restart. Rails 로 생성한 Project 폴더의 ./public 폴더 패스를 DocumentRoot 로 설정하면 됩니다.
ServerName www.yourhost.com
DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
<Directory /somewhere/public>
AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off
</Directory>
</VirtualHost>
추가적인 정보는 다음 Path 에 있다고 안내합니다.
5. apache2 restart하면 끝.
참고로 다음은 레일즈 실행환경별 속도 비교입니다.
webrick를 기준으로 Mongrel가 17배 Aapache가 33배, lighttpd는 100배 빠르군요. 이건뭐...;;;
http://viewsourcecode.org/why/redhanded/inspect/mongrelSGoingToKillWebrickGiveItAMonth.html
당분간은 Apache에 정착해야겠습니다.
.









Comments List