如何在 Elastic Beanstalk 上 运行 时获取服务器 URL?
How to get server URL when running on Elastic Beanstalk?
我使用 restify 创建一个部署到 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);
});
在本地运行时,我看到:
My API listening at http://0.0.0.0:1704
但是,当 运行 在 Elastic Beanstalk 上时,日志显示:
My API listening at http://0.0.0.0:8081
这是为什么?
为什么 server.url
不是 http://my-api.elasticbeanstalk.com
?
我怎样才能得到真正的 URL(类似于 http://my-api.elasticbeanstalk.com
)?
elastic beanstalk 节点应用程序在内部配置为 运行 on 8081。您可以在 node.conf
:
中看到它
upstream nodejs {
server 127.0.0.1:8081;
keepalive 256;
}
现在8081,只是内部端口。如果你检查这个 conf 文件,你会看到外部端口实际上是 8080,你的 ELB 将指向端口 80。我希望它不会太混乱:)
至于您的 env URL,您可以从桌面发出 eb status
命令来查看 CNAME。它也写在 EB 网络控制台中。
我使用 restify 创建一个部署到 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);
});
在本地运行时,我看到:
My API listening at http://0.0.0.0:1704
但是,当 运行 在 Elastic Beanstalk 上时,日志显示:
My API listening at http://0.0.0.0:8081
这是为什么?
为什么 server.url
不是 http://my-api.elasticbeanstalk.com
?
我怎样才能得到真正的 URL(类似于 http://my-api.elasticbeanstalk.com
)?
elastic beanstalk 节点应用程序在内部配置为 运行 on 8081。您可以在 node.conf
:
upstream nodejs {
server 127.0.0.1:8081;
keepalive 256;
}
现在8081,只是内部端口。如果你检查这个 conf 文件,你会看到外部端口实际上是 8080,你的 ELB 将指向端口 80。我希望它不会太混乱:)
至于您的 env URL,您可以从桌面发出 eb status
命令来查看 CNAME。它也写在 EB 网络控制台中。