nginx部署反向代理
在router中获取真实IP
就不能使用
r.client.host // 这个是nginx的地址,不是真实的IP
@app.get('/someurl')
async def some_fun(r: Request):
# ip = r.client.host 这个不再使用
# 应该使用nginx 中设置的header
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 自定义的 proxy_set_header XXX-test-header "test header";
print(r.headers) # 可以查看 headers的内容,是个dict
if 'x-forwarded-for' in r.headers:
ip = r.headers['x-forwarded-for']
# ip = r.headers['x-real-ip']
# self_defined_header = r.headers['xxx-test-header']