问题标签 [daphne]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 如何使用 https 和 mkcert 在 localhost 中运行 daphne
我正在尝试使用 https 在本地运行 django-channels 项目(该应用程序有一个需要 https 的 facebook 登录)。
我已按照使用 mkcert ( https://github.com/FiloSottile/mkcert )生成密钥和证书的说明进行操作,并尝试通过运行来使用密钥和证书daphne -e ssl:443:privateKey=localhost+1-key.pem:certKey=localhost+1.pem django_project.asgi:application -p 8000 -b 0.0.0.0
服务器似乎启动正常,但是当我尝试访问https://0.0.0.0:8000时没有任何反应,最终我收到“响应时间太长”的消息。
启动服务器时出现的标准 daphne 输出中没有添加新输出:
有人能帮忙吗?
django - 使用 Daphne 和 Nginx 部署 django 频道的问题
我在尝试打开网站时收到 502 错误。我使用了官方网站 链接中的说明
在/etc/supervisor/conf.d/添加了新文件 lifeline.conf
生命线配置文件
设置 nginx 配置
我检查了 asgi 日志文件,它包含一个错误。
我猜在lifeline.conf中有一个错误。
django - 将 django 设置传输到环境变量
我使用.bashrc
根文件夹中的文件在本地 ubuntu mashine 和 AWS Ubuntu 服务器上设置 django 项目设置并为环境变量添加值。
设置.py
在本地一切正常,但在生产服务器值未导入。为什么它不能在两台机器上工作?如何设置生产?
我使用 asgi 服务器 daphne 运行生产服务器,因此本 教程
更新
asgi.py
django - 尝试启动 Daphne systemctl 进程时权限被拒绝
我正在使用 Django 和 Django-Channels 部署一个网站,其中 Channel 的daphne
ASGI 服务器代替了典型的 Gunicorn WSGI 设置。使用此 Gunicorn WSGI 教程作为入门指南,当我遇到以下错误时,我尝试为我的 daphne 服务器编写一个 systemctl 服务:
CRITICAL Listen failure: [Errno 13] Permission denied: '27646' -> b'/run/daphne.sock.lock'
不幸的是,我找不到任何答案来解释为什么.sock
文件的权限会被拒绝(在 Daphne 的上下文中),所以我希望我能得到一些关于从哪里开始调试这个问题的提示。以下是我daphne.socket
和我的daphne.service
文件。
达芙妮服务
达芙妮.socket
根据链接的 DigitalOcean 教程,我使用sudo systemctl start daphne.socket
.
我的猜测是,我错过了为 Gunicorn 和 Daphne 设置 systemctl 服务之间存在某种差异,但我不确定。
(如果有帮助,我打算使用 Nginx 作为主服务器,但我还没有达到那个地步)
编辑:
如果我还附上 systemd 给出的完整输出,这将有所帮助:
django - How to run wsgi along the side of the daphne ASGI for django channels
i am using django channels in my project using using official django channels v2
, my simple channels app is completed and working fine if run python manage.py runserver
but
i want to run django channels in different port so i am now using daphne
using daphne
my_project.asgi:application --port 8001
it working fine in 8001 port
and i also run python manage.py runserver
in another terminal parallely working fine. now my both channels in 8001
and django in 8000
port working correctly but my runserver command running ASGI/Channels instead of wsgi development server,
instead of
settings.py
if i debug any function in views.py
request, it is ASGI request instead of django wsgi request
my question is:
- how to get django request instead of ASGI request in our normal function view request(like
def index(request)
) or if we install django channels every request become ASGI request? - what is the use of the python mange.py runworker command
ssl - 带有 Django Channels 和 Daphne webserver 的 wss(安全 websocket)
我试图弄清楚如何设置 Django Channels,以便它通过 wss:// 方案接受我的 websocket 连接。
对于 ws:// 一切正常。我在客户端使用 websockets 包来建立与服务器的连接(将 Channels 作为 ASGI 服务器运行)。但是当我切换到 wss:// 并开始运行客户端时,然后...... 60 秒内没有任何反应,之后我收到一条错误消息,指出:“SSL 握手时间超过 60.0 秒:中止连接”
我的 Daphne 服务器在标准端口 8000 的 localhost 上运行。
我知道 HTTP 和 HTTPS 以及 TCP 和 TLS 应该在不同的端口上运行,但由于我没有在 Django Channels readthedocs 网站上找到任何提示,我认为它可能只是奇迹般地处理这两者而无需任何配置。我想我错了?
客户端连接是这样建立的:
on_open() 和 on_message() 方法分别处理套接字的打开和解析传入的消息。
现在,我实际上也希望能够在服务器端(使用 Channels)设置 SSL 上下文,但是经过数小时的在线研究后,我还没有找到一个示例。我宁愿只看到将 nginx 配置为侦听端口 443 并指向必要证书的示例。
我认为 Daphne 是一个生产就绪的服务器,可以同时处理 HTTP(s) 和 WebSocket(ws 和 wss)请求。我需要 Nginx 做什么?
这似乎是一个愚蠢的问题,但我很高兴在这里得到任何帮助。
django - 启动 django 服务器时,我不断收到 NotImplementedError 错误
下面是错误的完整跟踪。请让我知道什么可以解决这个问题:
heroku - 达芙妮拒绝所有远程请求
我有一个项目,我使用频道并且在本地一切运行良好,但是当我在 Heroku 上部署时,每次尝试连接时都会得到 403。起初我认为问题出在 Heroku 上,因为我在本地对其进行了测试,甚至在本地使用了 Heroku 的数据库和 redis 实例,一切正常。
但是,当我使用ngrok打开到我的本地主机的公共隧道时,我发现结果与 Heroku 中的相同。对于每个请求,我都会得到 403 并尝试调试它并没有多大帮助,因为事件循环有时会突然控制或出现超时错误。设置与一个在本地访问而另一个在远程访问的设置完全相同。这就是我开始达芙妮的方式:
daphne weout.asgi:application --port 8000 --bind 0.0.0.0 -v 3
.
我的库版本:
- Django==2.0.7
- 频道==2.2.0
- 通道-redis==2.4.0
- 达芙妮==2.3.0
将 Daphne 的 versbosity 设置为最大值,这是我尝试连接时得到的结果:
我使用 Daphne 为我的普通 Django 视图和 websocket 消费者提供服务。一切都适用于 Django 视图,因此仅在连接到消费者时才会出现问题
有没有人在远程访问 Dapnhe 时遇到类似的问题?起初我尝试将 uvicorn 与 gunicorn 一起使用,但是当消费者在初始连接阶段关闭时它们会出现错误,所以我切换回 Daphne
python - 使用 celery 和 websocket 在 Azure 应用服务上部署 Python Django 应用
我正在尝试将我的Django 应用程序从 Heroku 移动到 Azure 应用程序服务。
该应用程序由 Websocket 和 Rest API 组成。
因此,应用程序的 Web 部分在daphne Web 服务器上运行,worker 部分在celery上运行。
在 Heroku 中,我的 Procfile 看起来像
当我在 Azure 应用程序服务上尝试相同的操作时,他们提供了一个启动命令来在构建后启动服务器。
我有 web 和 worker 命令来运行服务器。我尝试使用 sh 文件来执行 Web 和 worker 命令。但它不会工作
所以以下是我面临的问题
- Daphne 服务器命令在 azure 中不起作用,但是当我将其更改为 gunicorn 时它可以工作 [但不支持 WebSocket :( 使用 gunicorn ]
- 另外,我不知道如何在 azure app 服务中运行 web 和 worker,因为它们只有一个启动命令选项
欢迎任何帮助或指导
提前致谢.....
django - django 频道 vs daphene
我对 django-channels 和 uvicorn 服务器的主要角色有点困惑。我已经阅读了很多博客,但没有得到太多澄清。
如果我们可以使用通道为 websockets 实现 ASGI 服务器,那么为什么我们需要像 daphene 或 uvicorn 那样单独的 asgi 服务器?