首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Daphne拒绝所有远程请求

Daphne拒绝所有远程请求
EN

Stack Overflow用户
提问于 2019-11-22 15:27:21
回答 1查看 861关注 0票数 2

我有一个项目,我使用渠道和本地一切都很好,但当我部署在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
  • channels==2.2.0
  • 频道-redis=2.4.0
  • daphne==2.3.0

随着Daphne的诗句被设置为最大,当我尝试连接时,这就是我得到的:

代码语言:javascript
复制
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,489 [asyncio] DEBUG: poll 101.195 ms took 0.023 ms: 1 events
Nov 22 07:16:34 weout-staging app/web.1 10.12.43.130:10299 - - [22/Nov/2019:15:16:33] "WSCONNECTING /api/v1/ws/" - -
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,513 [daphne.http_protocol] DEBUG: Upgraded connection ['10.x.x.x', 10299] to WebSocket
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,648 [asyncio] WARNING: Executing <Task pending coro=<AsyncConsumer.__call__() running at /app/.heroku/python/lib/python3.6/site-packages/channels/consumer.py:59> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fe01e6979d8>()] created at /app/.heroku/python/lib/python3.6/asyncio/base_events.py:276> created at /app/.heroku/python/lib/python3.6/site-packages/daphne/server.py:209> took 0.131 seconds
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,655 [daphne.server] INFO: failing WebSocket opening handshake ('Access denied')
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,656 [daphne.server] WARNING: dropping connection to peer tcp4:10.12.43.130:10299 with abort=False: Access denied
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,656 [daphne.ws_protocol] DEBUG: WebSocket ['10.x.x.x', 10299] rejected by application
Nov 22 07:16:34 weout-staging app/web.1 10.12.43.130:10299 - - [22/Nov/2019:15:16:33] "WSREJECT /api/v1/ws/" - -
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,660 [aioredis] DEBUG: Parsing Redis URI 'redis://xxxx@xxxxx'
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,660 [aioredis] DEBUG: Creating tcp connection to ('xxx.compute.amazonaws.com', 14059)
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,663 [asyncio] DEBUG: Get address info xxx, type=<SocketKind.SOCK_STREAM: 1>
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,667 [asyncio] DEBUG: Getting address info xxx.compute.amazonaws.com:14059, type=<SocketKind.SOCK_STREAM: 1> took 3.777 ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('x.x.x.x', 14059))]
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,669 [daphne.ws_protocol] DEBUG: WebSocket closed for ['10.x.x.x', 10299]
Nov 22 07:16:34 weout-staging app/web.1 10.12.43.130:10299 - - [22/Nov/2019:15:16:33] "WSDISCONNECT /api/v1/ws/" - -
Nov 22 07:16:34 weout-staging app/web.1 2019-11-22 15:16:33,671 [asyncio] DEBUG: connect <socket.socket fd=16, family=AddressFamily.AF_INET, type=2049, proto=6, laddr=('0.0.0.0', 0)> to ('x.x.x.x', 14059)

我使用Daphne为我的普通Django视图和websocket使用者提供服务。对于Django视图,一切都运行良好,所以只有连接到使用者时才会出现问题。

是否有人在远程访问Dapnhe时有类似的问题?一开始,我试过和古尼一起服务,但是他们有一个当使用者在初始连接阶段关闭时出错。,所以我换回了达芙妮。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-22 19:53:12

原来是AllowedHostsOriginValidator!那肯定浪费了我很多时间。顺便问一下,没有Origin头的情况下,对于来自移动应用程序或其他来源的请求,该中间件将如何运行?

不管怎样,我暂时删除了它,现在的问题已经解决了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58997268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档