1

我已经设置了一个本地 django 服务器以及曾经位于的 celery 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 后,我可以从127.0.0.1:9000.

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

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

4

1 回答 1

0

两者都是 Django 应用程序,因此默认情况下它们都希望在端口 8000 上运行。但是,该runserver命令接受端口作为参数,因此您可以将不同的端口传递给一个或另一个,具体取决于您运行 Sentry 的方式。python manage.py runserver 9000将在该端口上运行。您只需要更新您的 Sentry 设置以使用端口 8000。否则,runserver如果您在本地使用该端口,您可以将该端口传递给 Sentry 的命令。

于 2014-10-06T19:56:23.723 回答