Развертывание django, каналов и веб-сокетов с nginx и Дафни - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь развернуть приложение django, которое использует каналы и веб-сокеты, с nginx и Дафни.

Когда я использовал uwsgi, вот мой nginx файл:

upstream django {
        server unix:/run/uwsgi/devAppReporting.sock;
}

server {
        listen 8090;
        server_name foo.bar.com;
        charset utf-8;

        location /static {
                alias /var/dev-app-reporting/static;
        }

        location / {
               uwsgi_pass django;
               include /var/dev-app-reporting/uwsgi_params;
               uwsgi_read_timeout 3600;
               client_max_body_size 50m;
        }
}

Теперь я изменил его на следующее:

upstream django {
        server unix:/run/daphne/devAppReporting.sock;
}

server {
        listen 8090;
        server_name foo.bar.com;
        charset utf-8;

        location /static {
                alias /var/dev-app-reporting/static;
        }

        location / {
            proxy_pass http://0.0.0.0:8090;
            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;
        }
}

Начал Дафни так:

daphne -u /run/daphne/devAppReporting.sock app.dse.asgi:application

Я получил ошибку 502 неверного шлюза, и это в журнале:

2020/02/24 22:17:26 [alert] 29169#29169: 768 worker_connections are not enough
2020/02/24 22:17:26 [error] 29169#29169: *131545 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: dse-portfolio-dev-assessments.md.virtualclarity.com, request: "GET / HTTP/1.1", upstream: "http://0.0.0.0:8090/", host: "xx.xx.xx.xx"

Любые идеи о том, что я должен иметь в моем конфигурационном файле, чтобы это работало?

1 Ответ

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

Я получил это работает. Исправлено было изменить строку proxy_pass на:

proxy_pass http://django;
...