Label Studio 部署并通过 Nginx 反向代理后,从 HTTP 切换到 HTTPS 报错Forbidden (403)


报错信息

Forbidden (403)
CSRF verification failed. Request aborted.

More information is available with DEBUG=True.

解决方案

设置 CSRF_TRUSTED_ORIGINS

从 Django 4.0 开始(Label Studio 使用的版本通常 ≥ 4.0),必须显式设置 CSRF_TRUSTED_ORIGINS,否则在 HTTPS 下所有非 localhost 的请求都会被拒绝。

方法一:通过环境变量(推荐)

Label Studio 支持通过环境变量配置 Django 设置。你可以在启动 Label Studio 前设置:

export LABEL_STUDIO_CSRF_TRUSTED_ORIGINS='https://your-domain.com'

如果有多个域名(比如带 www 和不带 www),用空格或逗号分隔(注意格式):

export LABEL_STUDIO_CSRF_TRUSTED_ORIGINS='https://your-domain.com https://www.your-domain.com'

方法二:修改配置文件(如果你自定义了 settings)

如果你使用的是自定义的 Django settings 文件(高级用法),可以直接在 settings.py 中添加:

CSRF_TRUSTED_ORIGINS = ['https://your-domain.com']
若使用了Ningx进行反代,需要确保 Nginx 正确传递协议头

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Label Studio 部署并通过 Nginx 反向代理后,从 HTTP 切换到 HTTPS 报错Forbidden (403)


愿你勿忘初心,并从一而终