node.js - 如何强制node.js pm2基于ipv4运行

标签 node.js express pm2 ipv4

目前我的主机使用了新的防火墙,根据他们的计划,他们不允许任何基于 ipv6 的 http 连接,所有连接都应该使用 ipv4。 我有一个使用node.js和expressJs的服务,我还使用pm2作为进程管理器来运行我的应用程序,我的问题是http请求由于使用ipv6而失败。我怎样才能强制node.js在nodeJs应用程序上监听版本4的IP地址。

我监听端口的代码部分:

const app = express();
...MANY MIDDLEWARE app.use();

mongoose.connect(MONGODB_URI, {useNewUrlParser: true, useUnifiedTopology: true})
    .then(result => {
        app.listen(APP_PORT);
        socketServer.listen(SOCKET_PORT, function () {
            console.log('server listening to: %j', socketServer.address())
        });

    })
    .catch(err => {
        console.log
    });

我可以在express中使用如下所示的内容吗:

var server = http.createServer(app).listen(APP_PORT, APP_IP);

最佳答案

我也对此感到好奇,但是基于一个有用的链接,它就像一个魅力: https://github.com/nodejs/node/issues/18041

我有这段代码:

var server = http.createServer(app);
server.listen(port);

为了监听 ipv4,我做了以下更改:

var server = http.createServer(app);
server.listen(port,"127.0.0.1");

再尝试一次该端口正在使用 ipv4 进行监听,否则它正在监听 ipv6 :

$ sudo netstat -lntp |grep -i 3000
tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN      20501/node /home/ml

关于node.js - 如何强制node.js pm2基于ipv4运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60131421/

相关文章:

javascript - 设置 NumbroJS 文化

javascript - mongoose .find() 方法返回具有不需要属性的对象

javascript - Firebase函数: Node. js:迭代存储在firebase文档字段中的映射

javascript - 如何添加保存另一个模式数据到模型中?

node.js - 使用进程文件将 --node-args --inspect 传递给 pm2

javascript - AWS Multipart上传 Node js错误

hash - Crypto - Express.js PBKDF2 HMAC-SHA1 就足够了吗?

javascript - 附加评论循环太多次javascript

amazon-web-services - 通过 ECS 运行 docker 镜像是否需要 PM2?

node.js - Winston 没有将日志写入文件