前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PlayScala 2.5.x - 关闭X-Forwarded-For解析

PlayScala 2.5.x - 关闭X-Forwarded-For解析

作者头像
joymufeng
发布2018-05-17 15:43:34
9630
发布2018-05-17 15:43:34
举报

1. 为什么要关闭X-Forwarded-For解析?

    某些用户可能会使用透明代理访问你的网站,透明代理在转发请求的时候会通过X-Forwarded-For请求头带上真实的请求IP地址,默认情况下,Play会解析这个请求头并赋值给request.remoteAddress,进而导致在Action中通过request.remoteAddress获取到的IP地址是一个内网地址,例如192.168.1.2。这些内网地址对地域统计来说没有任何意义,所以索性就关闭X-Forwarded-For解析,直接获取代理服务器地址。

2. 如何关闭X-Forwarded-For解析?

    很简单,只需要在application.conf配置文件中增加一行配置即可关闭所有X-Forwarded-For解析.

play.http.forwarded.trustedProxies = []

3.  如何启用X-Forwarded-For解析?

     如果使用Nginx做反向代理服务器,修改/etc/nginx/nginx.conf,告诉Nginx添加相应的请求头:

http {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host $http_host;
    proxy_http_version 1.1;
}    
1) 仅信任本地的反向代理服务器
play.http.forwarded.trustedProxies=["::1", "127.0.0.1"]
2) 信任特定的代理服务器
play.http.forwarded.trustedProxies=["192.168.0.0/24", "::1", "127.0.0.1"]

192.168.0.0/24表示整个C类地址段,即192.168.0.0-192.168.0.255。

3) 信任所有的代理服务器
play.http.forwarded.trustedProxies=["0.0.0.0/0", "::/0"]

4. 参考

Setting up a front end HTTP server

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 为什么要关闭X-Forwarded-For解析?
  • 2. 如何关闭X-Forwarded-For解析?
  • 3.  如何启用X-Forwarded-For解析?
    • 1) 仅信任本地的反向代理服务器
      • 2) 信任特定的代理服务器
        • 3) 信任所有的代理服务器
        • 4. 参考
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档