[英]Deploy node.js application to elastic beanstalk (using express)
[英]How to get client ip from node.js express application deployed on AWS Elastic beanstalk?
我正在將彈性 beantalk與ngnix代理服務器一起使用。 我的應用程序代碼在 node.js express框架上。 我正在嘗試通過以下代碼訪問客戶端 IP
var ip = event.headers['x-forwarded-for'] || event.connection.remoteAddress || event.socket.remoteAddress || event.connection.socket.remoteAddress;
但我總是為所有傳入請求獲得相同的客戶端 IP。 我認為這將是代理服務器的 IP 地址。
如何從我的應用程序訪問真實的客戶端地址???
我推遲了@austince,客戶端 IP 將是 Elastic Beanstalk 列表中的第一個條目。
示例:
X-Forwarded-For: 182.12.12.123, 78.13.13.123
萬一有人來尋找示例代碼,這是我在我的項目中使用的。
const _ = require('lodash');
const ipAddress = _.split(req.header('X-Forwarded-For'), ',');
ipadd = _.trim(_.first(ipAddress));
這是來自 AWS 的指南: https : //docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html#x-forwarded-for
X-Forwarded-For有效,但有時是一路上被擊中的 IP 列表。 客戶端 IP 應該是 Elastic Beanstalk 列表中的第一個條目。
例如:
X-Forwarded-For:client-ip-address、ip-address-1、ip-address-2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.