Rob Sanheim
2007-Jan-02 18:19 UTC
[Mongrel] problem with mongrel/apache2.2.3 and subdomain setup
Hi all
I got a vps setup amazingly fast using the deprec recipes on Ubuntu
edgy, but now I''m having a minor issue where my site loads for the
main domain when I only want it accessible from the subdomain. This
is a pretty typical setup, apache 2.2.3 -> mongrel_proxy_balancer ->
mongrel cluster. I''m sure I''m missing something obvious in
the
config...
I have the conf files pasted below. Should I just be able to set the
ServerName like I did in myapp.conf for this to work? Do I need to do
something else in the stock apache config?
Here''s the relevant config files:
mongrel_cluster.yml:
=======================cwd: /var/www/apps/myapp/current
port: "8000"
environment: production
address: 127.0.0.1
pid_file: log/mongrel.pid
servers: 2
myapp.conf
===========================<VirtualHost *:80>
ServerName myapp.domain.com
DocumentRoot /var/www/apps/myapp/current/public
<Directory /var/www/apps/myapp/current/public>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# Configure mongrel_cluster
<Proxy balancer://myapp_cluster>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
</Proxy>
RewriteEngine On
# Prevent access to .svn directories
RewriteRule ^(.*/)?\.svn/ - [F,L]
ErrorDocument 403 "Access Forbidden"
# Check for maintenance file and redirect all requests
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [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://myapp%{REQUEST_URI} [P,QSA,L]
# Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
ErrorLog logs/myapp.domain.com-error_log
CustomLog logs/myapp.domain.com-access_log combined
</VirtualHost>
========================the apache httpd.conf is pretty stock, but
here''s the part that I
_thought_ would allow me to serve from the main domain just using
apache:
ServerName domain.com
DocumentRoot "/usr/local/apache2/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
thanks,
Rob
Charles Brian Quinn
2007-Jan-02 18:50 UTC
[Mongrel] problem with mongrel/apache2.2.3 and subdomain setup
I''d add another: <VirtualHost *:80> ServerName www.otherdomain.tld DocumentRoot /www/otherdomain </VirtualHost> for your main document root, since you''re using VirtualHosts. and make sure that loads last -- this could mean if you''re doing something like: Include /etc/rails/*.conf in an apache configuration file that you name the files accordingly (perhaps 00_my_site.conf and 99_default_vhost.conf) hope that helps, -- Charles Brian Quinn self-promotion: www.seebq.com highgroove studios: www.highgroove.com slingshot hosting: www.slingshothosting.com Ruby on Rails Bootcamp at the Big Nerd Ranch Intensive Ruby on Rails Training: http://www.bignerdranch.com/classes/ruby.shtml On 1/2/07, Rob Sanheim <rsanheim at gmail.com> wrote:> Hi all > > I got a vps setup amazingly fast using the deprec recipes on Ubuntu > edgy, but now I''m having a minor issue where my site loads for the > main domain when I only want it accessible from the subdomain. This > is a pretty typical setup, apache 2.2.3 -> mongrel_proxy_balancer -> > mongrel cluster. I''m sure I''m missing something obvious in the > config... > > I have the conf files pasted below. Should I just be able to set the > ServerName like I did in myapp.conf for this to work? Do I need to do > something else in the stock apache config? > > Here''s the relevant config files: > > mongrel_cluster.yml: > =======================> cwd: /var/www/apps/myapp/current > port: "8000" > environment: production > address: 127.0.0.1 > pid_file: log/mongrel.pid > servers: 2 > > myapp.conf > ===========================> <VirtualHost *:80> > ServerName myapp.domain.com > > DocumentRoot /var/www/apps/myapp/current/public > > <Directory /var/www/apps/myapp/current/public> > Options FollowSymLinks > AllowOverride None > Order allow,deny > Allow from all > </Directory> > > # Configure mongrel_cluster > <Proxy balancer://myapp_cluster> > BalancerMember http://127.0.0.1:8000 > BalancerMember http://127.0.0.1:8001 > </Proxy> > > RewriteEngine On > > # Prevent access to .svn directories > RewriteRule ^(.*/)?\.svn/ - [F,L] > ErrorDocument 403 "Access Forbidden" > > # Check for maintenance file and redirect all requests > RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f > RewriteCond %{SCRIPT_FILENAME} !maintenance.html > RewriteRule ^.*$ /system/maintenance.html [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://myapp%{REQUEST_URI} [P,QSA,L] > > # Deflate > AddOutputFilterByType DEFLATE text/html text/plain text/xml > BrowserMatch ^Mozilla/4 gzip-only-text/html > BrowserMatch ^Mozilla/4\.0[678] no-gzip > BrowserMatch \bMSIE !no-gzip !gzip-only-text/html > > ErrorLog logs/myapp.domain.com-error_log > CustomLog logs/myapp.domain.com-access_log combined > </VirtualHost> > ========================> the apache httpd.conf is pretty stock, but here''s the part that I > _thought_ would allow me to serve from the main domain just using > apache: > > ServerName domain.com > DocumentRoot "/usr/local/apache2/htdocs" > <Directory /> > Options FollowSymLinks > AllowOverride None > Order deny,allow > Deny from all > </Directory> > <Directory "/usr/local/apache2/htdocs"> > Options Indexes FollowSymLinks > AllowOverride None > Order allow,deny > Allow from all > </Directory> > > thanks, > Rob > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users >
Rob Sanheim
2007-Jan-03 20:23 UTC
[Mongrel] problem with mongrel/apache2.2.3 and subdomain setup
On 1/2/07, Charles Brian Quinn <me at seebq.com> wrote:> I''d add another: > > <VirtualHost *:80> > ServerName www.otherdomain.tld > DocumentRoot /www/otherdomain > </VirtualHost> > > for your main document root, since you''re using VirtualHosts. > > and make sure that loads last -- this could mean if you''re doing something like: > > Include /etc/rails/*.conf > > in an apache configuration file that you name the files accordingly > (perhaps 00_my_site.conf and 99_default_vhost.conf) > > hope that helps,Thanks, that led me down the right path. I needed the main domain vhost to load first, and I also needed to add NameVirtualHost *:80 to my main config. Now it all works. - Rob