prerequisites (running on redhat/centos 5)
ruby 1.8.6+ (download, untar, configure, make, make install [reboot])
rubygems (download, untar, ruby rubygems/setup.rb)
rails (gem install rails)
thin (gem install thin)
apache 2.2 (installs apache to /usr/local/apache2 with mod_proxy/_balancer)
- download
- untar
- ./configure –enable-proxy –enable-proxy-balancer –enable-rewrite –enable-deflate –enable-headers
- make && make install
Install the thin run script
# thin install
Installing the thin configuration file
# vi /etc/thin/thin_conf.yml
—
user: daemon
group: daemon
chdir: /var/www/rails_app/current
log: log/mongrel.log
pid: tmp/pids/mongrel.pid
environment: production
port: 8000
address: 127.0.0.1
servers: 3
# /etc/init.d/thin start
Now lets add the proxy configs to apache…
in httpd.conf:
Include conf/extra/*.conf
now add your vhost config in conf/extra/httpd-rails_app.conf …
# vi conf/extra/httpd-rails_app.conf
# Always keep the host header
ProxyPreserveHost On
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
ServerName http://www.rails_app.com
ServerAlias rails_app.com
DocumentRoot /var/www/rails_app/current/public
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ProxyPass /images !
ProxyPass /javascripts !
ProxyPass /stylesheets !
ProxyPass /uploads !
ProxyPass /photos !
ProxyPass / balancer://rails_cluster/
ProxyPassReverse / balancer://rails_cluster/
# =============================================
# Configure Deflate Module (gzip)
# =============================================
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# =============================================
# Virtualhost logs
# =============================================
# Mark requests for the robots.txt file
SetEnvIf Request_URI “^/robots\.txt$” dontlog
ErrorLog logs/www/error_log
CustomLog logs/www/access_log combined env=!dontlog
# /usr/local/apache2/bin/apachectl start
rails thin apache all working together…. š