问题标签 [hypercorn]
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.
heroku - 如何在命令行中将 asyncio.get_event_loop() 传递给 quart?
在一个文档中,他们将事件循环传递给 quart。需要在路由处理程序中调用异步方法。
如何将此更改为heroku的命令行?
我试过了
但还是得到了
对此的跟进问题
How to get an event loop from Quart here 说 quart 的 app.run() 使用由 asyncio 为主线程创建的默认事件循环 那么他们为什么要通过循环呢?
python - Hypercorn - 在文件夹中找不到 __main__ 模块
我正在使用带有 debug=True 的 Quart(Flask async) 及其内置 Hypercorn 服务器,但是每次我保存文件并且应用程序尝试重新启动时,我都会得到:
C:\Users\myusername.virtualenvs\App-GtW9WS3s\Scripts\python.exe:在 'C:\Users\myusername\OneDrive' 中找不到 '__main__' 模块
我认为这与 Hypercorn 有关,但老实说,它可能是任何东西,关于这个错误的问题有很多不同的解决方案。
我在 Windows 10 中运行 Pipenv 毫无价值。
运行.py:
应用程序/__init__.py :
python-3.x - 如何连接 hypercorn 和 starlette 网络框架
我能够使用 gunicorn 和 uvloop 启动并运行它,但很难让它与 hypercorn 一起使用。另一个问题是指定 ASGI 框架的工作人员数量。
python-3.x - Python3.7 asyncio启动webserver(FastAPI)和aio_pika消费者
在我的项目中,我尝试启动一个 REST API(使用 FastAPI 构建并使用 Hypercorn 运行),另外我还希望在启动时启动一个 RabbitMQ 使用者(使用 aio_pika):
Aio Pika 提供了强大的连接,可在失败时自动重新连接。如果我使用hypercorn app:app
消费者运行下面的代码并且其余接口正确启动,但是从 aio_pika 重新连接不再起作用。如何在两个不同的进程(或线程?)中归档生产稳定的 RabbitMQ Consumer 和 RestAPI。我的 python 版本是 3.7,请注意我实际上是 Java 和 Go 开发人员,以防我的方法不是 Python 方式:-)
nginx - 即使使用 SSL 证书,Quart 上的不和谐 OAUTH 也会收到 InsecureTransportError
最近我一直在做一个网站项目,该项目允许用户使用他们的 Discord 帐户登录以使用他们的帐户浏览网站。
该网站使用 Flask-Discord 库,Quart 作为我的 WSGI Web 框架,Hypercorn 作为我的生产服务器,Nginx 作为代理将 Web 请求传递到我的 Hypercorn 套接字。我已经使用 Certbot-Nginx 设置了 SSL 证书,并使用 Let Encrypt 作为证书颁发者。但是,在用户被重定向到 Discord 登录页面后,用户登录到 Discord 并向我的 Quart 服务器请求回调我收到以下错误:
该网站已设置并在临时使用 noip 的域设置和 SSL 证书有效的情况下正常工作,使所有请求重定向到 HTTPS 而不是 HTTP。
是否有可能因为 SSL 证书是使用 Nginx 设置的,Python OAuth2 库只是不知道 SSL 证书?考虑到所有请求都被重定向到 HTTPS,这似乎不太可能。
我发现很多人建议防止此类错误,只需更改 OAuth 环境变量以允许不安全的传输,但我不想损害网站的安全性。
关于为什么会发生这种情况的任何想法都会非常有帮助。
谢谢
server - 为什么用 Hypercorn 运行 Quart 应用程序/它不是自动的吗?
如果您检查Quart库,app.run()
只需建立一些配置然后使用asyncio.run(serve(self, config))
,其中 serve 来自from hypercorn.asyncio import serve
。
因此,即使您通过 运行Quart应用程序python myapp.py
,它不是已经在使用Hypercorn服务器了吗?
特别是, this 和 running via 有什么区别hypercorn myapp:app
?
https://pgjones.gitlab.io/quart/deployment.html
不建议在生产中直接运行 Quart(通过 run())。相反,建议使用 Hypercorn 或替代 ASGI 服务器运行 Quart。Hypercorn 与 Quart 一起安装,默认情况下用于服务请求(例如使用 run())。
所以听起来,即使默认情况下使用Hypercorn来服务请求,run()
也不建议使用run()
? 还有人困惑吗?
python - Python Quart/Hypercorn 流式响应导致 net::ERR_HTTP2_PROTOCOL_ERROR 200
我有一个 Quart 应用程序,我用它将响应流回客户端。我正在使用 asyncio.sleep 来延迟响应完成,如果我将延迟设置为 59 秒,一切正常。流完成没有任何问题。如果我将时间增加到 120 秒,则响应似乎超时。这是客户端接收到流的第一部分,但大约 60 秒后,浏览器在 Chrome 中抛出错误:net::ERR_HTTP2_PROTOCOL_ERROR 200。Firefox 抛出 TypeError。
我正在将 Hypercorn 与 Nginx 一起使用。
hypercorn config.py 文件内容如下:
nginx.conf 中的相关设置:
我不知道如何解决这个问题。
我找出了问题的根源。它与 Quart、Hypercorn 或 Nginx 无关。问题在于 Cloudflare 和 http2,它是由 WriteTimeout 引起的。请参阅此答案: net::ERR_HTTP2_PROTOCOL_ERROR 是关于什么的?
那么问题是,如何在 Cloudlfare 中改变这一点。
我没有将 Quart 配置为在 http2 中工作,这有帮助吗?
python - hypercorn:客户端证书验证
我正在尝试在 hypercorn 中启用客户端证书验证。如果重要的话,我正在使用FastAPI。文档指导我使用参数--verify-mode
并简单地说明:
对等方证书的 SSL 验证模式,请参阅 ssl.VerifyMode 枚举以获取可能的值。
我尝试了一些猜测,但得到了一个致命错误:“hypercorn: error: argument --verify-mode: Not a valid verify mode”
我摸索了一下,在项目历史中找到了这段代码:
所以我这样做是为了验证有效值(Python 3.8):
但是,试图通过0
,1
或2
to --verify-mode
all 会给出“不是有效的验证模式”错误。我可以使用--cert-reqs
警告“警告:请改用 verify_mode”来传递这些值,但它会根据我在config.py中看到的代码启动并设置SSLContext
verify_mode
值。
不幸的是,这似乎没有任何作用。GET
当我在浏览器中执行 a 或至少一个错误时,我希望被提示输入客户端证书,因为它被设置为“必需”。但相反,我得到了很好的 200 错误代码响应。
我找不到任何关于使用 hypercorn 执行此操作的好的示例、教程或文档。这里还有什么我需要做的,比如设置一些其他属性吗?任何指导表示赞赏。
nginx - 在反向代理服务器 + Python HTTPS 服务器中,谁应该处理 HTTPS 连接的 SSL 证书?
假设我想使用 NGinX(可能是另一个,因为它不代理 HTTP/2 请求)和 Hypercorn 的组合。由于两者都可以处理 SSL 证书文件,我想知道谁最适合为 HTTPS 请求执行此操作。Hypercorn 可以监听 443 端口对我来说很重要,我不确定它是否可以在不指定 certfile 和 keyfile 参数的情况下做到这一点。