<% @path = "/etc/apache2/sites-available/#{rubber_env.app_name}-passenger" @post = "a2enmod rewrite && a2enmod ssl && a2enmod expires && a2enmod xsendfile && a2ensite #{rubber_env.app_name}-passenger" %> <% [rubber_env.passenger_listen_port, rubber_env.passenger_listen_ssl_port].each do |port| %> Listen <%= port %> > ServerName <%= rubber_env.domain %> <%- if rubber_env.web_aliases -%> ServerAlias <%= rubber_env.web_aliases.join(" ") %> <%- end -%> DocumentRoot <%= Rubber.root + "/public" %> ErrorDocument 404 /404.html ErrorDocument 500 /500.html SetEnvIf User-Agent "^(.*MSIE.*)|(.*AppleWebKit.*)$" nokeepalive RailsEnv <%= Rubber.env %> XSendFile on RewriteEngine On RewriteCond %{HTTP_HOST} ^<%= rubber_env.domain %>$ RewriteRule ^(.*)$ http://www.<%= rubber_env.domain %>$1 [R,L] # Include <%= Rubber.root %>/config/apache/rewrites.conf RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f RewriteCond %{SCRIPT_FILENAME} !maintenance.html RewriteRule ^.*$ /system/maintenance.html [L] <% if Rubber::Util.has_asset_pipeline? %> Header unset ETag FileETag None # RFC says only cache for 1 year. ExpiresActive On ExpiresDefault "access plus 1 year" # Cache the resource even if SSL is in use. Header merge Cache-Control public SetEnv no-gzip # Serve the gzip'd assets directly from disk if they were generated by Sprockets. # This avoids gzipping the asset on the fly by Apache and Sprockets will usually use a higher level # of compression than mod_deflate will, yielding savings all around. RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b RewriteCond <%= Rubber.root + "/public" %>%{REQUEST_FILENAME}.gz -s RewriteRule ^(.+) $1.gz [L] ForceType text/css Header set Content-Encoding gzip ForceType text/javascript Header set Content-Encoding gzip <% end %> <% if port == rubber_env.passenger_listen_ssl_port %> SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key # SSLCertificateFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.crt # SSLCertificateKeyFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.key # SSLCertificateChainFile /etc/ssl/certs/gd_intermediate_bundle.crt <% end %> <% end %> # The host here needs to match ServerName. PassengerPreStart http://<%= rubber_env.domain %>:<%= rubber_env.passenger_listen_port %>/