У меня есть код для получения IP-адреса и баланса нагрузки следующим образом:
var httpProxy = require("http-proxy");
var http = require('http');
var where=require('node-where');
var proxy = httpProxy.createProxyServer({});
var server=http.createServer( function (req, res){
console.log(req.headers['x-forwarded-for'] || req.connection.remoteAddress);
var country,state
where.is(req.connection.remoteAddress, function (err, result) {
console.log(result);
country=result.get('countryCode');
// state=result.get('regionCode');
if(country!='US')
{
proxy.web(req, res, {target: "http://localhost:3000"}, function (e){
proxy.web(req, res, {target: "http://localhost:3001"});
});
}
else
{
proxy.web(req, res, {target: "localhost:3001"}, function (e){
proxy.web(req, res, {target: "localhost:3000"});
});
}
});
});
server.listen(80);
однако, консольный журнал возвращает только ::1
. IP-адрес не отображается в запросе.
Как я могу получить IP-адрес устройства, обращающегося к веб-сайту, чтобы я мог балансировать нагрузку в зависимости от страны, в которой находится IP-адрес?