У меня есть домен (example.com
) размещен у внешнего провайдера. Я направил субдомен sub.example.com
на мой сервер ubuntu (12.04 с apache2).
На моем сервере ubuntu у меня есть такая настройка vhost. Остальная часть конфигурации в основном стандартная для apache 2:
<VirtualHost *:80>
ServerName sub.example.com
ServerAlias sub.example.com
ServerAdmin admin@sub.example.com
DocumentRoot /var/www/sub.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
WSGIScriptAlias / /home/application/sub.example.com/wsgi.py
<Directory /home/application/sub.example.com>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
</VirtualHost>
Когда я вхожу http://sub.example.com
в моем браузере мое приложение отображается нормально. Но домен заменен IP-адресом моего сервера. Нужно ли мне настраивать свой сервер где-то еще, чтобы доставлять весь его контент в мой домен sub.example.com
?
Вот мой файл wsgi.py:
import os
import sys
from os.path import abspath, dirname, join
PROJECT_ROOT = abspath(dirname(dirname(__file__)))
GIT_ROOT = abspath(dirname(dirname(PROJECT_ROOT)))
sys.path.insert(0, join(GIT_ROOT, 'venv', 'lib', 'python2.7', 'site-packages'))
sys.path.insert(0, PROJECT_ROOT)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings")
# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
Следуя совету DTest, я понял, что это просто перенаправление от моего поставщика домена. Мой провайдер домена сделал просто перенаправление вместо реальной записи DNS A на sub.example.com. Добавил запись DNS A и теперь «Работает!». Спасибо, парни!