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

如何配置ngrok HTTP隧道实现本地Open edX公网访问?

配置ngrok子域名访问本地Bitnami Open edX教程

我帮你整理了一套亲测可行的步骤,解决用ngrok子域名暴露本地Open edX的问题,分四步走:

1. 启动ngrok子域名隧道

首先确保你已经登录ngrok(如果用自定义子域名,免费版有使用限制,建议确认你的ngrok套餐支持自定义子域名)。在终端运行以下命令:

ngrok http --subdomain=your-edx-subdomain 80

把your-edx-subdomain换成你想要的子域名(比如my-edx-test),运行后会生成类似http://my-edx-test.ngrok.io的公网地址,记好这个地址。

2. 修改Open edX核心配置文件

Bitnami Open edX的配置文件集中在/opt/bitnami/apps/edx/conf目录下,需要修改几个关键文件:

  • 更新LMS和CMS的环境配置:
    编辑lms.env.json和cms.env.json,找到以下字段并替换成你的ngrok子域名:

    "LMS_BASE": "your-edx-subdomain.ngrok.io",
    "CMS_BASE": "studio.your-edx-subdomain.ngrok.io",
    "SITE_NAME": "your-edx-subdomain.ngrok.io",
    "LMS_ROOT_URL": "http://your-edx-subdomain.ngrok.io",
    "CMS_ROOT_URL": "http://studio.your-edx-subdomain.ngrok.io"
    

    注意:如果你的ngrok隧道用HTTPS,要把http改成https。

  • 调整Apache虚拟主机配置:
    进入Apache虚拟主机目录/opt/bitnami/apache/conf/vhosts/,编辑edx-lms-vhost.conf和edx-cms-vhost.conf:
    在<VirtualHost *:80>块中,添加或修改ServerName和ServerAlias:

    ServerName your-edx-subdomain.ngrok.io
    ServerAlias studio.your-edx-subdomain.ngrok.io  # 适配CMS的子域名访问
    

    这样Apache才能正确识别来自ngrok子域名的请求。

3. 更新静态资源并重启服务

Open edX的静态资源会缓存旧域名信息,必须执行更新:

cd /opt/bitnami/apps/edx/bin
./update-assets

然后重启相关服务,让所有配置生效:

sudo /opt/bitnami/ctlscript.sh restart apache
sudo /opt/bitnami/ctlscript.sh restart edx

4. 验证公网访问

回到ngrok的终端界面,复制生成的公网地址(比如https://your-edx-subdomain.ngrok.io),在浏览器中打开,应该能正常访问Open edX主页。同时可以测试CMS(studio子域名)是否能正常加载。

额外注意事项

  • 免费版ngrok的自定义子域名会在隧道关闭后被回收,如果需要长期使用,建议升级到付费版。
  • 如果本地Open edX配置了HTTPS(比如用了Bitnami的SSL证书),要把ngrok命令改成ngrok https --subdomain=your-edx-subdomain 443,同时所有配置文件里的域名都要换成https开头。
  • 确保本地防火墙没有阻止80/443端口的入站请求,否则ngrok无法连接到你的本地服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:02:39