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

OpenLiteSpeed+CyberPanel部署Django出现503/404错误如何解决?

问题根因

你遇到的404问题和index配置没有直接关系,核心是两个问题:

  1. OpenLiteSpeed默认会优先匹配静态首页文件(index.html/index.php),优先级高于WSGI应用上下文,所以保留index.html时会返回默认页,删除后没有静态文件匹配就直接返回404,没有转发到Django应用
  2. 你当前vHost配置里的PYTHONPATH参数填写错误,同时缺少Django配置文件的环境变量声明,导致WSGI进程无法正确加载Django项目

修复步骤

1. 修改重写规则,强制转发非静态请求到Django

替换你vHost配置中的rewrite段为以下内容,直接关闭自动加载.htaccess,手动配置规则优先级:

rewrite  {
  enable                  1
  autoLoadHtaccess        0
  # 静态文件、媒体文件直接返回,不转发到WSGI
  rewrite                 ^/static/(.*)$ /static/$1 [L]
  rewrite                 ^/media/(.*)$ /media/$1 [L]
  # 其余所有请求转发到WSGI应用
  rewrite                 ^/(.*)$ /$1 [QSA,L,H=application/x-wsgi]
}

你可以直接删除项目根目录下的默认index.html文件,不需要保留。

2. 修正WSGI上下文配置

首先找到你虚拟环境的Python版本,假设你用的是Python3.8,对应site-packages路径为/home/unionelectronics.in/public_html/lib/python3.8/site-packages(如果是其他版本把3.8改成对应版本号即可),替换你vHost配置中的context /段为以下内容:

context / {
  type                    App Server
  location                /home/unionelectronics.in/public_html/KPECproject/
  binPath                 /usr/local/lsws/fcgi-bin/lswsgi
  appType                 WSGI
  startupFile             KPECproject/wsgi.py
  # 修正PYTHONPATH,改为虚拟环境依赖包路径+项目路径,不要写python二进制路径
  env                     PYTHONPATH=/home/unionelectronics.in/public_html/lib/python3.x/site-packages:/home/unionelectronics.in/public_html/KPECproject
  env                     LS_PYTHONBIN=/home/unionelectronics.in/public_html/bin/python3
  # 新增Django配置文件声明
  env                     DJANGO_SETTINGS_MODULE=KPECproject.settings
}

3. 修正项目权限

执行以下命令确保项目目录权限和vHost运行用户一致,避免WSGI进程无法读取项目文件:
chown -R union9108:union9108 /home/unionelectronics.in/public_html/

4. 重启服务生效

执行以下命令重启OpenLiteSpeed服务,修改即可生效:
systemctl restart lsws


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:45:03