gpt4 book ai didi

ssl - 使用 MUP 和 SSL 获取真实 IP

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:30 25 4
gpt4 key购买 nike

我们正在使用 MUP 将 Meteor 部署到 AWS。几周前,我们很高兴我们现在可以切换到免费证书,感谢 LetsencryptKadira .一切都运行良好,直到我在日志中意识到客户端 IP 不再通过代理传递...无论我做什么,我都看到 127.0.0.1 作为我的客户端 IP。我试图在使用 this.connection.clientIPheaders 的方法中获取它包。

好吧,在进行了大量研究并深入了解了 stub 和 nginx 的工作原理之后,我得出的结论是,这从来都行不通。

我想到的最佳解决方案是使用 proxy_protocol作为described by Chris ,但我无法让它工作。

我玩过 /opt/stud/stud.conf 的设置并尝试打开 write-proxyproxy-proxy 设置上。

这是我的 nginx 配置:

server {
listen 80 proxy_protocol;
server_name www.example.com example.com;

set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto http;
}
}

这是我的 header 在生产 EC2 服务器上的样子:

  accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
accept-encoding:"gzip, deflate, sdch"
accept-language:"en-US,en;q=0.8"
cache-control:"no-cache"
connection:"upgrade"
host:"127.0.0.1:3000"
pragma:"no-cache"
upgrade-insecure-requests:"1"
x-forwarded-for:"127.0.0.1"
x-forwarded-proto:"http"
x-ip-chain:"127.0.0.1,127.0.0.1"
x-real-ip:"127.0.0.1"

所以,今天的问题。将 MUP 与 SSL 结合使用,有没有办法获取直通客户端 IP 地址?

最佳答案

我知道你说过你尝试过使用 headers , 但你可以再试一次,看看你能不能通过这种方式得到一些东西。我在 x-forwarded-for 计数不保持一致方面遇到了很多问题,但如果我从 header 链中拉出,[0] 始终是客户端 IP。

将此代码放在您的/server 文件夹中:

Meteor.methods({
getIP: function() {
var header = this.connection.httpHeaders;
var ipAddress = header['x-forwarded-for'].split(',')[0];
return ipAddress;
}
});

在您的浏览器控制台中:

Meteor.call('getIP', function(err, result){
if(!err){
console.log(result);
} else {
console.log(err);
}
};

看看您从该响应中得到了什么。如果可行,您可以在 Template.rendered 上或任何需要 IP 的时候调用该方法。

否则,我很确定您应该能够在 nginx conf 中将 IP 设置为任意 header ,然后直接在 req 对象中访问它。

关于ssl - 使用 MUP 和 SSL 获取真实 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35099759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com