CyberPanel中Vhost反向代理Flask应用配置失效,持续报500错误
修复LiteSpeed反向代理Flask应用的500错误问题
你的配置存在重复代理规则、协议冲突、重写逻辑混乱等核心问题,直接导致了500错误,以下是修复后的完整配置及修改说明:
修正后的完整配置
vhDomain $VH_NAME vhAliases www.$VH_NAME enableGzip 1 enableIpGeo 1 index { useServer 0 indexFiles index.php, index.html } errorlog $VH_ROOT/logs/$VH_NAME.error_log { useServer 0 logLevel WARN rollingSize 10M } accesslog $VH_ROOT/logs/$VH_NAME.access_log { useServer 0 logFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" logHeaders 5 rollingSize 10M keepDays 10 compressArchive 1 } extprocessor pythonflask1709 { type proxy address 127.0.0.1:5000 maxConns 200 pcKeepAliveTimeout 60 initTimeout 20 retryTimeout 0 respBuffer 0 } # 移除冲突的脚本处理器配置 # scripthandler { # add proxy:pythonflask1709 html # } module cache { storagePath /usr/local/lsws/cachedata/$VH_NAME } rewrite { enable 1 autoLoadHtaccess 1 RewriteEngine On # 修正HTTP转HTTPS的重定向规则 RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] } context / { type proxy handler pythonflask1709 addDefaultCharset off # 移除上下文内重复且冲突的重写规则 # rewrite { # enable 1 # autoLoadHtaccess 1 # RewriteEngine On # RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # REWRITERULE ^(.*)$ HTTP://127.0.0.1:5000/$1 [P] # } }
关键修改说明
- 移除重复代理配置:同时使用
scripthandler和context proxy会导致请求被双重代理,直接删掉scripthandler中的代理规则,仅通过根上下文/处理代理逻辑。 - 修正HTTPS重定向逻辑:原规则错误地将HTTP请求跳转到HTTP,改为强制跳转到
https://;同时删除全局重写中的代理规则,避免与上下文代理冲突。 - 清理上下文内重复重写规则:上下文内的重写规则不仅重复了HTTPS跳转,还额外添加了HTTP代理规则,与上下文本身的
proxy type冲突,直接删除该部分。 - 统一代理协议:Flask默认在5000端口运行HTTP服务,原配置用
HTTPS://127.0.0.1:5000代理会导致连接失败,现在通过上下文handler直接指向定义好的extprocessor,自动使用HTTP连接,避免协议不匹配。
额外检查项
- 确认Flask应用在
127.0.0.1:5000正常运行,可通过curl http://127.0.0.1:5000测试是否返回正常响应。 - 重启LiteSpeed服务使配置生效:
/usr/local/lsws/bin/lswsctrl restart - 若仍有问题,查看错误日志
$VH_ROOT/logs/$VH_NAME.error_log,日志会给出具体错误信息(如连接超时、权限问题等)。
内容的提问来源于stack exchange,提问作者Subramanya G
相关产品推荐
相关产品推荐

