Django-hosts没有提供自定义urlconf

时间:2014-11-28 22:16:31

标签: python django postgresql nginx gunicorn

我正在尝试使用django-hosts在api.mysite.com上提供一些纯文本数据。我的项目是使用这里描述的nginx,gunicorn,django,postgres配置:

digitalocean

我已经安装了django-hosts并按照此处的文档:django-hosts,但是当我访问api.mysite.com时,DNS查找失败。我对settings.py文件进行了更改,例如,

ROOT_HOSTCONF = 'mysite.hosts'

DEFAULT_HOST = 'www'

INSTALLED_APPS = (
#. . . 
'django_hosts',
)

MIDDLEWARE_CLASSES = (
#. . . 
'django_hosts.middleware.HostsMiddleware',
)

我的urls.py旁边有一个apiurls.py文件,如下所示:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from mysite.views import hello

urlpatterns = patterns('',
    url(r'^$', hello),
)

这是我正常的urls.py文件:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from mysite.views import hello

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/', hello),

)

mysite.com/hello按预期工作。

和我的hosts.py文件:

from django.conf import settings
from django_hosts import patterns, host

host_patterns = patterns('',
        host(r'www', settings.ROOT_URLCONF, name='www'),
        host(r'api', settings.ROOT_URLCONF, name='api'),
)

正如您所看到的,我只是将api主机设置为ROOT_URLCONF,以查看它是否是我的自定义URL配置文件的问题,但它没有用。无论我改变什么,任何访问api.mysite.com只会让dns查找失败。 www.mysite.com和www.mysite.com/hello一样工作得很好。

有什么想法吗?

编辑:我是否需要配置NGINX以某种方式通过api.mysite.com?我尝试在我的NGINX配置中将* .mysite.com添加到server_name,但这也没有用。

1 个答案:

答案 0 :(得分:0)

事实证明,我的DNS更改花了很长时间才传播,差不多12个小时,现在一切都很顺利。如果有人发现这一点,我的配置工作正常,并按预期。