configfiles
/etc/mongrel/mongrel_cluster.yml --> symlinked also to /var/www/railsapp/config/mongrel_cluster.yml
# user to run mongrel as user: www-data # group mongrel runs as group: www-data # base path to railsapp cwd: /var/www/railsapp/ # ip to bind the mongrels too address: 172.17.129.165 # port to start first daemon on, subsequent get next ports respectively port: "8001" # start mongrel(s) in development or production env environment: development # path to pid pid_file: /var/www/railsapp/log/mongrel.pid # path to log file log_file: /var/www/railsapp/log/mongrel.log # number of mongrels to start servers: 2
/etc/apache2/apache2.conf
This starts proxy balancer if more than one mongrel is running for a rails app, with a single mongrel instance this is NOT needed.
<Proxy balancer://mongrels> BalancerMember http://172.17.129.165:8002 BalancerMember http://172.17.129.165:8001 </Proxy> # this allows you to manage the balancer-namager via the web <Location /balancer-manager> SetHandler balancer-manager </Location>
/etc/apache/sites-available/railsapp
<VirtualHost *>
ServerName railsapp
DocumentRoot /var/www/railsapp/public
<Directory "/var/www/railsapp/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RewriteEngine On
# Check for maintenance file. Let apache load it if it exists
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteRule . /system/maintenance.html [L]
# Let apache serve static files
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
RewriteRule (.*) $1 [L]
# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]
# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
# Redirect all non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrels%{REQUEST_URI} [P,QSA,L]
# Rewrite rule for single mongrel
# RewriteRule ^/(.*)$ http://ipofmongrel%{REQUEST_URI} [P,QSA,L]
# Don't do forward proxying
ProxyRequests Off
# Enable reverse proxying
<Proxy *>
Order deny,allow
Allow from 172.28.150
</Proxy>
# (for mongrels in a cluster) Pass other requests to mongrel instance (this name should be the same as the balancer you named in apache2.conf
ProxyPass / balancer://mongrels
ProxyPassReverse / balancer://mongrels
# (for a single mongrel) Pass other requests to mongrel instance (this name should be the same as the balancer you named in apache2.conf
# ProxyPass / http://ipofmongrel:port
# ProxyPassReverse / http://ipofmongrel:port
# we want apache to serve our static files, so that monrel doesnt work so hard
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
Alias /images /var/www/railsapp/public/images
Alias /stylesheets /var/www/railsapp/public/stylesheets
Alias /javascripts /var/www/railsapp/public/javascripts
# set our log location
ErrorLog /var/www/railsapp/log/error.log
# loglevel should not be debug for production servers
LogLevel debug
CustomLog /var/www/railsapp/log/access.log combined
ServerSignature On
# Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/htm
/var/www/railsapp/config/database.yml
common: &common adapter: mysql host: localhost # you can also specify a remote db and port # host: ip/hostname # port: either comment it out for defaul mysql port, or specify a custome one username: password: development: database: railsapp_dev <<: *common production: database: railsapp_prod <<: *common test: database: railsapp_test <<: *common
RubyOnRailsStack/configfiles (last edited 2008-08-06 16:15:29 by localhost)