Ruby on Rails 개발환경 구축
Ruby On Rails : Apache 2.2.x + ProxyBalancer + Mongrel 설치
Ruby On Rails 개발 환경 구축
httpd 모듈 추가
1. 컴파일시 추가할 옵션
--enable-rewrite --enable-proxy --enable-proxy-balancer --enable-proxy-http
2. httpd 소스에 포함된 module
* mod_proxy, mod_proxy_balancer, mod_proxy_http, mod_rewrite
* 추가할 module : mod_proxy_html.c
* module 추가하기
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/mod_proxy.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/ mod_proxy_balancer.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/mod_proxy_http.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/mapper/mod_rewrite.c
{APACHE_HOME}/bin/apxs -ci -I/usr/include/libxml2 {APACHE_SRC_HOME}/modules/proxy/mod_proxy_html.c
* libxml2 라이브러리가 설치되어 있어야함
* 설치후 {APACHE_HOME}/modules 에서 확인
Ruby 설치
* download site : http://www.ruby-lang.org/en/.
* 설치
tar xzf ruby-x.y.z.tar.gz
cd ruby-x.y.z
./configure
make
make test
sudo make install (혹은 root로 make install)
RubyGems 설치
* download site : http://rubygems.rubyforge.org
* 설치
tar xzf rubygems-0.8.10.tar.gz
cd rubygems-0.8.10
sudo ruby setup.rb
sudo gem install rails --include-dependencies
mongrel 과 mongrel_cluster 설치
* root로 설치
gem install daemons gem_plugin mongrel -include-dependencies
gem install mongrel_cluster
mongrel Test
* 간단한 테스트
* 웹 애플리케이션 만들기
mkdir {TEST DIR}
cd {TEST DIR}
rails test(웹 애플리케이션 명)
* mongrel 환경 설정 (root)
mongrel_rails cluster::configure -e development \
-p 8000 \
-N 3 \
-c {TEST DIR}/test/ \
-a 127.0.0.1 \
--user {USER} --group {GROUP}
* mongrel 실행/종료
mongrel_rails start -d -p 8000 -e production -l /var/log/mongrel.log -P /var/log/mongrel0.pid -c /hosting/test
mongrel_rails start -d -p 8001 -e production -l /var/log/mongrel.log -P /var/log/mongrel1.pid -c /hosting/test
mongrel_rails start -d -p 8002 -e production -l /var/log/mongrel.log -P /var/log/mongrel2.pid -c /hosting/test
* 종료 - mongrel_rails cluster::stop
* 웹브라우저로 확인
* http://localhost:8000 http://localhost:8001 http://localhost:8002
httpd.conf 설정하기
* Module 추가
LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ajp_module libexec/apache22/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so
LoadModule rewrite_module modules/mod_rewrite.so
* VirtualHost 추가
<VirtualHost *>
ServerName ruby.atat.co.kr
DocumentRoot {TEST_DIR}/test
RewriteEngine On
RewriteRule ^/$ /index.html [QSA]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule $/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
<Directory /hosting/test>
AllowOverride all
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Proxy balancer://mongrel_cluster>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
</Proxy>
</VirtualHost>