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

VPS通过Nginx反代Jupyter Lab出现跨域API拦截如何修复?

问题根因

W 2021-09-08 07:44:04.737 LabApp] Blocking Cross Origin API request for /lab/api/workspaces/default. Origin: http://jupyter.kiwiheretic.xyz, Host: localhost
该报错是因为Nginx转发请求时给Jupyter传递的Host头值为localhost,和请求实际的来源Origin: http://jupyter.kiwiheretic.xyz不匹配,触发了Jupyter的跨域校验规则;你修改配置后未生效大概率是使用了错误的配置参数名,或是参数不全。

修复步骤

步骤1:修正Nginx转发配置

将你现有Nginx配置中location /块下的proxy_set_header Host localhost;改为:

proxy_set_header Host $host;

修改后执行sudo nginx -t验证配置语法正确,再执行sudo systemctl restart nginx重启Nginx生效。

步骤2:修正Jupyter Lab配置

打开~/.jupyter/jupyter_notebook_config.py,替换原有跨域相关配置为以下内容:

  • 如果你使用的是Jupyter Lab 3.x及以上版本:
c.ServerApp.allow_origin = '*'
c.ServerApp.allow_credentials = True
c.ServerApp.trust_xheaders = True
  • 如果你使用的是Jupyter Lab 2.x及以下旧版本:
c.NotebookApp.allow_origin = '*'
c.NotebookApp.allow_credentials = True
c.NotebookApp.trust_xheaders = True

注意:如果配置文件中对应参数前有#注释符,需要先删除注释符配置才会生效。

步骤3:重启Jupyter Lab服务

关闭现有运行的Jupyter Lab进程,重新执行启动命令即可:

jupyter lab --no-browser

如果不想修改配置文件,也可以直接在启动时附加参数生效:

jupyter lab --no-browser --ServerApp.allow_origin='*' --ServerApp.trust_xheaders=True
可选排查方案

如果修改后仍报错,可在Jupyter Lab启动日志中确认加载的配置文件路径,确认你修改的配置文件和实际加载的是同一个,避免虚拟环境/多用户环境下配置文件路径不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:39:02