提问人:Arash Rabiee 提问时间:2/9/2020 最后编辑:Arash Rabiee 更新时间:8/5/2022 访问量:7092
如何强制 Node.js PM2 基于 IPv4 运行
how to force node.js pm2 to run based on 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);
答:
3赞
Manuel Lazo
1/6/2021
#1
我也对它很好奇,但基于一个有用的链接,它就像一个魅力:.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
评论
use IPv4
IP:port
app.listen(APP_PORT);
app.listen(APP_PORT, '0.0.0.0');
app.listen
你可以说你正在做的一个超集。它应该工作相同。 表示它将侦听任何 IPv4 连接。server.listen
0.0.0.0
app.listen(APP_PORT, '0.0.0.0');
req.ip