本地Django服务器重定向到Sentry服务器

时间:2014-01-06 00:42:58

标签: python django sentry raven

我设置了一个本地django服务器以及芹菜,它曾经是127.0.0.1(我可以在运行命令python manage.py runserver <port>时调整端口)。

然后,我想为我的应用设置Sentry。我按照快速启动说明执行此操作。这是我在sentry.conf.py

中修改的内容
SENTRY_URL_PREFIX = 'http://sentry.localhost'
SENTRY_WEB_HOST = 'localhost'
SENTRY_WEB_PORT = 9000

ALLOWED_HOSTS = ['*']

这就是我在settings.py

中修改过的内容
INSTALLED_APPS = (
    'sentry',
    'raven.contrib.django',
    'raven.contrib.django.raven_compat'
)

SENTRY_CLIENT = 'raven.contrib.django.raven_compat.DjangoClient'

RAVEN_CONFIG = {
    'dsn' : 'http://private:public@localhost:9000/2?timeout=10',
}

from sentry.conf.server import *

我必须添加ALLOWED_HOSTS = ['*'],因为否则python manage.py raven test会因为可疑的标头而失败。而且我不得不添加from sentry.conf.sever import *因为否则我会得到raven的错误,并且没有设置一些sentry变量。设置Sentry后,我可以从127.0.0.1:9000访问它。

但是,我无法访问我的django应用程序。每次我去127.0.0.1:8000时,我都会被重定向到哨兵登录(登录后因内部服务器错误而导致内部服务器错误,因为它不在端口9000上)。此外,从控制台查看日志,如果我没有将SuspiciousOperation: Invalid HTTP_POST header放在ALLOWED_HOSTS = ['*']文件的末尾,我会看到settings.py错误。

如何在同一IP(localhost)和不同端口上本地运行django app和Sentry?

1 个答案:

答案 0 :(得分:0)

两者都是Django应用程序,所以他们默认会想要在端口8000上运行。但是,runserver命令接受端口作为参数,因此您可以根据您运行Sentry的方式将不同的端口传递给其中一个端口。 python manage.py runserver 9000将在该端口上运行。您只需更新Sentry设置即可使用端口8000.否则,如果您在本地使用该端口,则可以将该端口传递给Sentry的runserver命令。