Ngrok errors '502 bad gateway'

匿名 (未验证) 提交于 2019-12-03 01:26:01

问题:

Quite new to using any sort of Web App stuff, and I've been trying to slowly build a Facebook Messenger Bot. When I try to use ngrok I can't visit the address I'm given, i.e:

ngrok http 5000 

is what I'm putting in the command line, and it's returning this:

ngrok by @inconshreveable  Session Status                online Version                       2.1.18 Region                        United States (us) Web Interface                 http://127.0.0.1:4040 Forwarding                    http://ea986ca5.ngrok.io -> localhost:5000 Forwarding                    https://ea986ca5.ngrok.io -> localhost:5000  Connections                   ttl     opn     rt1     rt5     p50     p90                               0       0       0.00    0.00    0.00    0.00 

But when I take the address 'https://ea986ca5.ngrok.io' as is required by the Facebook developer's page, it says:

The connection to http://ea986ca5.ngrok.io was successfully tunneled to your ngrok client, but the client failed to establish a connection to the local   address localhost:5000.   Make sure that a web service is running on localhost:5000 and that it is a  valid address.   The error encountered was: dial tcp [::1]:5000: connectex: No connection  could be made because the target machine actively refused it. 

Is it a problem with my local port? Thanks!

回答1:

Just as @njzk2 should have said, if you don't have a web server running so it cannot work. I would like to make it clearer to you, if you are still confused.

What ngrok does, is to make your local server (running on localhost) to be available to the outside world (rest of the internet). On its own, it is not a web server. So for your bot development you need to have a web server running on a defined port (which in your case is 5000). Then you can point ngrok to this port so that it will redirect requests sent to your public address to the program running on that port. The web server will then accept and handle requests from Facebook



回答2:

This worked for me

ngrok.exe http -host-header=rewrite localhost:

e.g ngrok.exe http -host-header=rewrite localhost:5219

Im using visual studio 2017 dont know if it effects anthing.



回答3:

This error can occur if you have an HTTP rule to redirect HTTP to HTTPS.

You can disable this for your developer machine or add a custom rule based on the X-Original-Host header:

I'm using the IIS rewrite plug-in and this is how I fixed it

 


回答4:

I had to use both (1) the answer from @user6483104 and (2) start my ngrok tunnel using the unsecured URL defined in my project (vs the SSL URL ie. https).

See my answer here: How to configure Visual Studio 2017 to expose a non-encrypted port in a ASP.Net MVC https site

Note: If I'm wrong about there being a default unsecured URL, this answer (How To Disable Https in Visual Studio 2017 Web Proj ASP.NET Core 2.0) claims to have a solution for disabling the secured URL. I didn't try it because there was already an unsecured URL defined in my existing project (as I suspect there is with yours as well)



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!