文章目录
    
    
    
    0 背景
   
- 使用ngnix反向代理, 部署flask项目时, 不能获取到真正的客户ip地址.
    
    
    1 代理
   
    
    
    1.1 正向代理
   
- 正向代理的代理对象是客户端.
- 客户端不能直接访问服务端,然后客户端将请求全部发给中介,由中介去访问服务端,然后中间将返回结果发给客户端.服务端只知道中介, 而不知道真正的客户端.
    
    
    1.2 反向代理
   
- 反向代理的代理对象是服务端.
- 服务端不直接对外开放, 而是通过一个中介, 对外开放服务. 客户端只知道中介, 而不知到是谁给他提供真正的服务.
    
    
    2 解决办法
   
    
    
    2.1 在nginx配置中添加
    
     X-Forwarded-For
    
   
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    
    
    2.2 在项目中添加如下代码
   
from flask import request
def get_ipaddr():
    if request.access_route:
        return request.access_route[0]
    else:
        return request.remote_addr or '127.0.0.1'
 
版权声明:本文为baidu_33387365原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
