首页 > 解决方案 > 如何使用 ngrok 正确公开 docker 服务器?

问题描述

我在我的机器上运行了一个 docker 安装,我可以通过访问mysite.local(定义为映射到 hosts 文件中的 127.0.0.1)在我的浏览器上访问该站点

当我运行ngrok http mysite.local它时它工作正常但是当我打开http://random_id.ngrok.io链接时

GET / 301 永久移动

隧道www.random_id.ngrok.io未找到

这条规则毫无价值,.htaccess即使它对我来说看起来不错

RewriteCond %{HTTP_HOST} !^mysite.local
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

UPDATE ngrok http -host-header=rewrite mysite.local似乎确实有效,但是:css 和其他资产无法加载(.htaccess 中唯一与 css 相关的规则是AddType text/css .chunk.css AddType text/css .css:)

标签: dockerngrok

解决方案


看起来重写规则对我来说是个问题。

您的规则规定:

如果 http 主机不开头mysite.local,则重定向到https://www.HOST/[...]

我建议要么完全删除重写规则,要么使用 ngrok 的http 主机头重写功能:

ngrok http -host-header=rewrite mysite.local

推荐阅读