настройка django каналов для веб-сокетов в производстве - PullRequest
1 голос
/ 25 марта 2020

У меня есть страница с ... / chat / url, и все это работает на localhost. Я пытаюсь выполнить развертывание в Ubuntu и испытываю трудности.

Я думаю, что добраться до точки похоже на публикацию того, что у меня есть:

/ etc / nginx / sites-enabled / mysite:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

upstream channels-backend {
    server localhost:8001;
}

server {
    listen 80;
    server_name foo.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/mysite/mysite/;
    }

    location / {
        include proxy_params;
        limit_req zone=mylimit;
        proxy_pass http://unix:/run/gunicorn.sock;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Я попытался изменить свой блок сервера, чтобы он содержал:

...
    location / {
        try_files $uri @proxy_to_app;
        include proxy_params;
        limit_req zone=mylimit;
        proxy_pass http://unix:/run/gunicorn.sock;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location @proxy_to_app {
        proxy_pass http://channels-backend;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
    }
...

, но это привело к тому, что моя веб-страница стала 503.

My python и js выглядит нормально, так как он работает на локальном хосте, и запуск daphne -b 0.0.0.0 -p 8001 myproject.asgi:application приводит к сообщению Listening..., так что это выглядит нормально.

Мой /etc/supervisor/conf.d/mysite.conf - это:

[program:mysite_asgi]
directory=/home/ubuntu/mysite/mysite
command=/home/ubuntu/mysite/mysite/venv/bin/daphne -b 0.0.0.0 -p 8001 mysite.asgi:application
autostart=true
autorestart=true
stopasgroup=true
user=ubuntu
stdout_logfile=/home/ubuntu/mysite/daphnelog/asgi.log
redirect_stderr=true

В консоли браузера отображается WebSocket connection to 'ws://foo.com/chat/' failed: Error during WebSocket handshake: Unexpected response code: 503, я не уверен, выложил ли я полную картину того, что нужно сказать, чтобы помогите мне помочь - пожалуйста, дайте мне знать, если есть больше информации для достижения этой цели. Спасибо!

...