我花了一整夜的时间搞清楚为什么我们的生产服务器有一个错误,我们的登台服务器错过了。今天早上,我终于将其缩小并将其钉在了这段代码上:
url = [ database.protocol, '//' + database.host, database.port, ].join(':');
url = [ url, database.db ].join('/');
呀。这究竟是如何起作用的呢?好吧,在分期中它显示:
http://:localhost:5984/fo
但是在大师中它显示了
http://:10.x.x.x:5984/fo (x is a number)
前者有效,但后者没有。这是我对URL的了解让我失望的地方。前者究竟是如何有效但后者不是?
编辑:
要清楚,我认为这两个URL都应该是无效的,这是一个应该在我的登台服务器中捕获的错误。我只是想知道为什么以前的URL(:localhost)被解释为有效但后者不是。
答案 0 :(得分:0)
localhost
(几乎总是)127.0.0.1
。 127.0.0.1
与10.x.x.x
非常不同。
如果服务器正在监听localhost
,则只接收来自服务器本身的连接。因此,即使进入服务器的IP也不足以从外部连接到它。
确保服务器正在侦听其网络IP,而不是环回。