在我socket.io代码,
socket.sockets.on('connection', function(client){
var ip = client.handshake.address.address;
..
}
IP总是返回127.0.0.1,这是因为服务器坐在后面的代理。 如何正确获取远程地址?
编辑:我使用HTTP代理
在我socket.io代码,
socket.sockets.on('connection', function(client){
var ip = client.handshake.address.address;
..
}
IP总是返回127.0.0.1,这是因为服务器坐在后面的代理。 如何正确获取远程地址?
编辑:我使用HTTP代理
没错,这是为我工作。
client.handshake.headers['x-forwarded-for'] || client.handshake.address.address;
我得到正确的远程IP地址,而不是127.0.0.1
在版本> 1.0,语法是相似的:
socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
对于谁可能来自谷歌,使用NGINX人:没有这些工作对我来说,我跟着回答这个问题,其他和修改我的proxy_pass
,创建一个新的标头,节点可以再使用。 不要忘了打电话给sudo systemctl restart nginx
后。