Несколько доменов все неправильно указывают на один и тот же VirtualHost с Django WSGI - PullRequest
0 голосов
/ 18 января 2012

Я использую Django, используя wsgi. У меня есть два домена и один поддомен, указывающий на три отдельных виртуальных хоста apache2. По какой-то (вероятно, очень очевидной) причине каждый домен попадает на один и тот же сайт (первый, который был размещен в сети с помощью a2ensite). Моя конфигурация следующая:

<VirtualHost *:80>
   ServerName www.one.com/
   ServerAlias one.com
   ServerAdmin andy@one.com

   DocumentRoot /srv/www/one.com/public_html

   <Directory /srv/www/one.com/application>
      Order allow,deny
      Allow from all
   </Directory>

   WSGIDaemonProcess one.com processes=2 threads=15 display-name=%{GROUP}
   WSGIProcessGroup one.com
   WSGIScriptAlias / /srv/www/one/application/apache/one.wsgi

   Alias /robots.txt /srv/www/one.com/public_html/robots.txt
   Alias /favicon.ico /srv/www/one.com/public_html/favicon.ico
   Alias /media /srv/www/one.com/public_html/media
   Alias /static /srv/www/one.com/public_html/static

   ErrorLog /srv/www/one.com/logs/error.log
   CustomLog /srv/www/one.com/logs/access.log combined   

</VirtualHost>

////// /// one.wsgi //////////

import os
import sys

sys.path.append('/srv/www/one.com/application')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

//////////////////

<VirtualHost *:80>
   ServerName dev.one.co.uk/
   ServerAlias www.dev.one.co.uk/
   ServerAdmin andy@one.com

   DocumentRoot /srv/www/dev.one.com/public_html


   <Directory /srv/www/dev.one.com/application>
      Order allow,deny
      Allow from all
   </Directory>

   WSGIScriptAlias / /srv/www/dev.one.com/application/apache/devone.wsgi

   Alias /robots.txt /srv/www/dev.one.com/public_html/robots.txt
   Alias /favicon.ico /srv/www/dev.one.com/public_html/favicon.ico
   Alias /media /srv/www/dev.one.com/public_html/media
   Alias /static /srv/www/dev.one.com/public_html/static

   ErrorLog /srv/www/dev.one.com/logs/error.log
   CustomLog /srv/www/dev.one.com/logs/access.log combined   

</VirtualHost>

//////// devone.wsgi ///////////

import os
import sys

sys.path.append('/srv/www/dev.one.com/application')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

/////////////

<VirtualHost *:80>
   ServerName dev.two.com/
   ServerAlias www.dev.two.com/
   ServerAdmin andy@two.com

   DocumentRoot /srv/www/dev.two.com/public_html


   <Directory /srv/www/dev.two.com/application>
      Order allow,deny
      Allow from all
   </Directory>

   WSGIScriptAlias / /srv/www/dev.two.com/application/apache/devtwo.wsgi

   Alias /robots.txt /srv/www/dev.two.com/public_html/robots.txt
   Alias /favicon.ico /srv/www/dev.two.com/public_html/favicon.ico
   Alias /media /srv/www/dev.two.com/public_html/media
   Alias /static /srv/www/dev.two.com/public_html/static

   ErrorLog /srv/www/dev.two.com/logs/error.log
   CustomLog /srv/www/dev.two.com/logs/access.log combined   

</VirtualHost>

//////// devtwo.wsgi /////

import os
import sys

sys.path.append('/srv/www/dev.two.com/application')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Все домены все в порядке с IP-адресами моих серверов, но все они находятся на одной странице. Что мне не хватает? Заранее спасибо!

Обновление:

NameVirtualHost *:80

Объявлен в ports.conf

1 Ответ

1 голос
/ 18 января 2012
  • Убедитесь, что определения vhosts загружаются по порядку, от наиболее специфического к наименее конкретному (например, возможно, назвав их 10_dev.two.com.conf, 20_dev.one.com.conf, 30_one.com.conf)
  • The *Директивы 1007 * и ServerAlias не должны иметь трейлинг /
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...