You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LiteSpeed服务器部署Quart ASGI应用请求超时问题求助

问题根因

你当前配置的核心错误是main.py中的启动代码没有加__name__ == "__main__"判断,当passenger_wsgi.py导入main模块时,末尾的asyncio.run(main())会直接执行,启动Quart内置监听服务,导致进程永久阻塞,Passenger无法获取到应用入口,自然所有请求都会超时。

修复方案

方案1:修复现有配置直接运行Quart

  1. 修改main.py,将启动代码包裹在判断逻辑中,同时Quart路由建议定义为异步函数避免阻塞事件循环:
import asyncio
from quart import Quart
server = Quart("App")

@server.route('/', methods=['GET', 'POST'])
async def ping():
    return "OK!"

if __name__ == "__main__":
    async def main():
        await server.run_task()
    
    asyncio.run(main())
  1. 替换自定义的ASGI转WSGI适配器,使用成熟的第三方库避免兼容问题:
    • 先在你的Python环境安装依赖:pip install a2wsgi
    • 修改passenger_wsgi.py内容如下,删除自定义的wsgi_bridge.py文件:
from a2wsgi import ASGIMiddleware
from main import server

application = ASGIMiddleware(server)
  1. 重启LiteSpeed Python Selector对应的应用进程,重新访问即可正常响应。

方案2:兼容原有Flask部署逻辑的替代方案

如果不想折腾ASGI转WSGI的兼容,可以直接用Flask实现相同的Discord机器人联动需求,直接复用你之前的Flask部署配置即可:

from flask import Flask
import asyncio
# 导入你Discord机器人的异步发消息方法
from your_bot_module import send_to_discord_channel

app = Flask(__name__)

@app.route('/send')
def send_msg():
    # 同步路由中运行异步Discord方法
    asyncio.run(send_to_discord_channel("用户触发的测试消息"))
    return "消息已推送"

@app.route('/', methods=['GET', 'POST'])
def ping():
    return "OK!"

if __name__ == "__main__":
    app.run()

内容的提问来源于stack exchange,提问作者NORXND

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:15:06