美文网首页
laravel7 信任代理实践

laravel7 信任代理实践

作者: 苍老师的眼泪 | 来源:发表于2022-08-20 12:43 被阅读0次

    场景是这样的,假设前端页面的接口请求是通过配置反向代理来请求真实的服务器的,比如前端 front.com 请求 backend.com/api/users 的真实过程为:请求 front.com/api/users,前端web服务器通过匹配 uri 识别请求是 /api 开头的,所以是接口请求,于是反向代理到 backend.com,这个时候问题来了,后端代码识别的客户端地址为前端 web 服务器的 ip 地址,不是用户真实的 ip 地址,如果对这个 web 服务器地址进行接口节流,比如同一个每分钟最多请求 60 次,则会出现问题。
    解决方法,配置前端 web 服务器,定义一个请求头用来表示真实的前端用户的 ip 地址,(web服务器是可以拿到真实的客户端ip地址的),比如标记为 X-Forwarded-For (详见维基百科同名词条),当然也可以配置成其他名字。
    nginx 示例:

    proxy_set_header X-Forwarded-For $remote_addr;
    

    此时再配置后端的信任代理ip地址,就可以获取真实的ip地址了
    整个过程是:后端如果发现请求头里面有 X-Forwarded-For 这一项,并且直接获取到的ip是信任代理里面的某一项,就 X-Forwarded-For 的值当作真实的ip地址。

    相关文章

      网友评论

          本文标题:laravel7 信任代理实践

          本文链接:https://www.haomeiwen.com/subject/htyvgrtx.html