【问题标题】:Configuring domain name instead of IP address while using restify in node app在节点应用程序中使用restify时配置域名而不是IP地址
【发布时间】:2014-10-04 00:57:26
【问题描述】:

我正在使用 restify 模块为我的应用程序生成 REST API。我想知道如何直接在此代码中配置我的域名。我希望我的 ip_addr 类似于 "domainname.com" 而不是 127.0.0.1 。

var ip_addr = 'domainname.com';
var port    =  '80';

var connection_string = '127.0.0.1:27017/myapp';
var db = mongojs(connection_string, ['myapp']);
var jobs = db.collection("jobs")

var server = restify.createServer({
    name : "myapp"
});

server.use(restify.queryParser());
server.use(restify.bodyParser());
server.use(restify.CORS());

server.listen(port ,ip_addr, function(){
    console.log('%s listening at %s ', server.name , server.url);
});

每当我使用“domainname.com”而不是“127.0.0.1”时,我都会收到错误 EADDRNOTAVAIL 有人可以帮忙吗?如何在此节点应用程序中将其配置为我的域名?

【问题讨论】:

    标签: javascript node.js api ip-address restify


    【解决方案1】:

    有一些误会。它要求指定要收听的 IP 地址。

    例子:

    1. 服务器地址为 100.1.1.2 和 100.1.1.3
    2. mydomain.com 注册到 100.1.1.3
    3. 设置ip_addr = '100.1.1.3'

    在这种情况下,服务器将响应所有对这个 ip 的请求,以及所有注册到这个 IP 的域。通过 100.1.1.2 的连接将超时。


    简而言之,如果您想收听 domainname.com,只需指定它注册到的 IP。

    如果您不想担心地址并侦听所有可用的网络接口,则根本不要指定 IP 地址:

    server.listen(port, function() { ....Server API

    【讨论】:

    • 感谢您的回复。我将 IP 地址从“domainname.com”更改为 54.200.41.00,这是我在 ec2 云实例中的 IP 地址。当我做“节点应用程序”时..它会抛出一个错误说
    • 错误:在 errnoException (net.js:901:11) 处侦听 EADDRNOTAVAIL 在 Server._listen2 (net.js:1020:19) 处侦听 (net.js:1061:10)
    • 该错误表示您尝试启动应用程序的服务器上没有具有此地址的网络接口。作为一种解决方案,要监听所有可用的接口,只需删除地址:server.listen(port, function()...
    • 抱歉不明白 :( ...过去我结合使用 express 和 vhost 来映射域名.. 效果很好...在 Route53 我已经配置了域名。 com 到 54.200.41.00 .. 而且 80 端口是免费的.. 现在我该怎么办?
    猜你喜欢
    • 2019-12-22
    • 2023-03-25
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多