如何从NODE.JS应用程序中的cloudfront获取Client-IP,当AWS EC2之间有Nginx服务器时?
unhi4e5o1#
我的建议是使用CloudFront提供的头文件,链接- [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-cloudfront-headers.html]1.你需要做的第一件事就是进入Cloudfront ->选择Distribution -> Behaviors ->然后在'Cache key and origin requests'中执行以下操作1.如果您不希望任何内容被缓存,请在“缓存策略”下拉列表中选择“CachingDisabled”。如果我没有选择这个选项,我个人在我的应用程序中遇到了问题。1.对于原始请求策略,请执行以下操作-新建一条策略,如**'Origin-Policy-For-Cloudfront',选择'CloudFront-Viewer-Address'**,并 checkout 其他选项。它看起来像这样-x1c 0d1x的数据1.保存它,最后Cloudfront行为应该如下所示-
的1.现在,打开conf.d/node.conf或nginx.conf,在你写了'server -> /location'的地方,简单地写以下内容-
server { listen 80; server_name my-server CLOUDFRONT_URL; location / { proxy_set_header X-Client-IP $http_CloudFront_Viewer_Address; proxy_set_header Host $http_host; proxy_pass "http://127.0.0.1"; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
字符串1.在NodeJs Backend上,您可以按如下方式获取请求中的客户端IP-
exports.get = (req, res, next) => { console.log('Client IP:', req.headers['x-client-ip']); }
型这是一种更容易获得客户端IP的方法,而不是在Cloudfront CIDR IP范围和所有其他方面乱搞。
1条答案
按热度按时间unhi4e5o1#
我的建议是使用CloudFront提供的头文件,链接- [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-cloudfront-headers.html]
1.你需要做的第一件事就是进入Cloudfront ->选择Distribution -> Behaviors ->然后在'Cache key and origin requests'中执行以下操作
1.如果您不希望任何内容被缓存,请在“缓存策略”下拉列表中选择“CachingDisabled”。如果我没有选择这个选项,我个人在我的应用程序中遇到了问题。
1.对于原始请求策略,请执行以下操作-
新建一条策略,如**'Origin-Policy-For-Cloudfront',选择'CloudFront-Viewer-Address'**,并 checkout 其他选项。
它看起来像这样-
x1c 0d1x的数据
1.保存它,最后Cloudfront行为应该如下所示-
的
1.现在,打开conf.d/node.conf或nginx.conf,在你写了'server -> /location'的地方,简单地写以下内容-
字符串
1.在NodeJs Backend上,您可以按如下方式获取请求中的客户端IP-
型
这是一种更容易获得客户端IP的方法,而不是在Cloudfront CIDR IP范围和所有其他方面乱搞。