在Elastic Beanstalk上运行时如何获取服务器URL?
我使用restify来创build部署到Elastic Beanstalk的节点API。
var server = restify.createServer({ name: 'My API' }); server.listen(process.env.PORT || 1704, function() { console.log('%s listening at %s', server.name, server.url); });
在本地运行时,我看到:
我的API在http://0.0.0.0:1704上监听
但是,在Elastic Beanstalk上运行时,日志显示:
我的API在http://0.0.0.0:8081上监听
这是为什么?
为什么server.url
不是http://my-api.elasticbeanstalk.com
?
我怎么能得到真正的url(像http://my-api.elasticbeanstalk.com
)?
弹性beanstalk节点应用程序被configuration为在内部运行8081。 你可以在node.conf
看到它:
upstream nodejs { server 127.0.0.1:8081; keepalive 256; }
现在8081,只是内部端口。 如果你检查这个conf文件,你会看到外部端口实际上是8080,你ELB将指向端口80.我希望它不是太混乱:)
至于您的envurl,您可以从桌面发出eb status
命令来查看CNAME。 它也写在EB Web控制台中。