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: daemongroup: daemonchdir: /var/www/rails_app/currentlog: log/mongrel.logpid: tmp/pids/mongrel.pidenvironment: productionport: 8000address: 127.0.0.1servers: 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 headerProxyPreserveHost On BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 BalancerMember http://127.0.0.1:8002 ServerName 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.... :)