Бэкэнд Redis в сети, используя django - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть приложение для чата, в автономном режиме оно работает нормально, но при развертывании его в сети я получаю эту ошибку

enter image description here

note : я уже установил Redis без проблем, это мои settings.py, это - production.py, который является моим другим settings.py

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [os.environ.get('REDIS_URL', 'redis://localhost:6379')],
        },
        # "symmetric_encryption_keys": [SECRET_KEY],
    },
}

, и это мои settings.py

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("127.0.0.1", 6379)],
        },
    },
}

примечание мой сайт работает

это моя ссылка https://github.com/codingforentrepreneurs/ChatXChannels

ОБНОВЛЕНИЕ

при запуске в Ubuntu

$ redis-server

enter image description here

$ ps aux | grep redis-server

enter image description here

я все еще получаю эту ошибку

enter image description here

1 Ответ

0 голосов
/ 20 февраля 2020

звучит так, будто ваш ранее существующий Django сервер обрабатывает ваш запрос, а не каналы, принимающие запрос.

Я думаю, что ваша проблема в том, как вы работаете с сервером в работе.

при запуске каналов в производстве у вас есть 2 варианта.

1) Выполнять все запросы через каналы (даже те, которые обрабатываются при обычном просмотре Django)

2) Запускать как обычно экземпляр сервера и экземпляр сервера ваших каналов (на разных локальных портах) с некоторыми path based reverse proxy перед ними (такими как Nginx), который направляет запросы на соответствующий локальный порт.

Независимо от выбранной опции, вы должны запускать каналы в производстве, используя это руководство https://channels.readthedocs.io/en/latest/deploying.html#run -protocol-server (не python manager.py).

если вы выберете опцию 1), помните, что при ее запуске она должна работать на той же конфигурации порта, что и ваш старый сервер Django, который использовался для ее запуска

если у вас go с опцией 2), вы должны убедиться, что весь ваш трафик c сначала попадает на ваш обратный прокси (Nginx) сервер. Затем вы можете запустить Daphne на другом порту и настроить маршрутизацию в Nginx для передачи прокси на соответствующий экземпляр сервера в зависимости от пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...