从问题的先前版本开始,有一个:Browse website with ip address rather than localhost,它概述了我到目前为止所完成的工作......我已经完成了本地IP工作。然后我找到了ngrok,显然我不需要通过IP连接。
我要做的是将我在localhost上运行的网站暴露给互联网。我找到了一个可以做到这一点的工具:ngrok。
在visual studio中运行该网站,该网站在localhost / port#上启动。我在命令行中运行命令“ngrok http port#”。一切似乎都很好。我生成了几个URL,并且ngrok检查URL(localhost:4040)可以工作。
唯一的问题是当我转到生成的URL时,我收到一个HTTP错误400:错误的请求无效的主机名。这是一个不同的错误,当我运行“ngrok http wrongport#”,这是一个主机未找到错误...所以我觉得好事正在发生。我只是不知道是什么......
在通过隧道服务将我的网站暴露给互联网时,我是否缺少一个步骤?如果有,我在ngrok文档中找不到它。
答案 0 :(得分:411)
使用ngrok来解决这个问题。用不可理解的话来说,一些应用程序在看到不同于预期的主机头时会生气。
运行以下命令应解决问题:
ngrok http [port] -host-header="localhost:[port]"
答案 1 :(得分:29)
以下命令将解决问题
ngrok http -host-header=localhost 8080
答案 2 :(得分:12)
对于https
,这有效:
ngrok http https://localhost:<PORT> -host-header="localhost:<PORT>"
答案 3 :(得分:0)
对我来说,最简单的方法是使用iisexpress-proxy + ngrok。
首先,我使用npm全局安装iisexpress-proxy
npm install -g iisexpress-proxy
然后我用它代理我的本地主机。假设我的网站在3003
上运行。
iisexpress-proxy 3003 to 12345
,其中12345
是我要代理的新http端口。
然后我可以在其上运行ngrok。
./ngrok.exe http 12345
就可以了!
但是我认为它仅适用于http
。现在,我不使用https
进行测试,但是即使它可以工作,通常也像往常一样需要大量工作。