Websocket连接在生产中失败-连接建立错误:net :: ERR_CONNECTION_TIMED_OUT

时间:2019-05-07 17:56:03

标签: angular amazon-web-services amazon-ec2 websocket django-channels

我正在尝试使Angular Websockets使用Django通道进入Amazon aws ec2实例,但是在生产时出现上述(标题)错误。它在我的本地环境中运行完美,但是在生产环境中,我只是获得连接超时,我也不知道为什么。我花了整整一周的时间试图弄清楚,但我没有头绪。

这是我的Django频道设置

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

我的路由(虽然不完全理解这一点,但是将url模式放在那里似乎允许它在我的本地计算机上工作)

from django.conf.urls import url

from . import consumers

websocket_urlpatterns = [
    url(r'^syncmessaging/$', consumers.SyncMessaging),
]

我的conf文件(supervisor_profiles_api.conf)

[program:project]
directory = /usr/local/apps/project
command = /root/.pyenv/versions/project/bin/daphne -p 9000 project.asgi:application
user = root
autostart = true
autorestart = true

我的nginx_profiles_api.conf的一部分(服务器监听443)

location / {
    proxy_pass http://127.0.0.1:9000/;
    proxy_set_header    Host                $host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $remote_addr;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_redirect      off;

}

所以daphne在9000端口上运行(据我了解),已经有工作程序在运行(如果我检查进程),因此我不需要运行manage.py runworker?

我的consumers.py(缩短)

from channels.generic.websocket import WebsocketConsumer
class SyncMessaging(WebsocketConsumer):
    #Basic connect,disconnect etc...

我的前端真的很基础,只运行一个websocket服务器,但这是我首先实例化websocket的方式

    this.ws = new WebSocket('wss://api.project.com:9000/syncmessaging/');

我只是在生产中出现连接超时,我不知道为什么,我一直在挠挠我的大脑,但我只是不熟悉与aws相关的任何事情。我尝试删除api,仅将url设置为“ wss://project.com:9000 / syncmessaging /”,但这只是给我错误代码503。有人可以向我提供一些我做错了什么的信息< / p>

0 个答案:

没有答案