Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip - plus studio

在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip - plus studio

作者头像
plus sign
发布于 2024-04-10 01:52:24
发布于 2024-04-10 01:52:24
4640
举报
文章被收录于专栏:个人博客个人博客

在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip

背景是这样的,我使用docker部署了一个fastapi部署了一个应用,使用request.client.host获取请求的来源ip,但是获取到的都是172.17.0.1这显然是不是正常的,是docker网络下的ip,所以我们需要在nginx进行设置转发真实ip

首先点击宝塔应用商店,找到nginx,点击右边的设置,在配置修改中,找到http模块中的include luawaf.conf;,在下面添加如下两段代码,重载nginx

12

set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For;

同时在/www/server/panel/vhost/nginx/proxy/你的网站 这里路径下面能找到一个配置文件,在location /加上

1234567

location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://your_fastapi_app;}

在fastapi中,我们将获取ip的代码改成下面这样

1

ip_address = request.headers.get("X-Real-IP") if request.headers.get("X-Real-IP") else (request.headers.get("X-Forwarded-For") if request.headers.get("X-Forwarded-For") else request.client.host)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-4-9,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
网站使用CDN的情况下nginx日志如何记录真实IP
网站避免攻击以及需要加速的情况下使用了CDN的情况下,nginx的访问日志只会记录节点IP,无法记录用户真实访问IP。下面就教大家如何记录用户真实IP。废话不多说下面以宝塔面板为例:
梦屿
2024/01/10
1.2K0
网站使用CDN的情况下nginx日志如何记录真实IP
linux centos 负载均衡 nginx 获取客户端真实ip:配置 ip 可见性
#--- 代理服务器(外层nginx) ---# nginx 子站点配置文件: /www/www/wwwconf/www.conf #分站子站转发配置,再server 板块的 location 方法里面 server{ listen 80; server_name work.eisc.cn; location / { proxy_pass http://work.eisc.cn; #--- 将ip 记录下来,传递给后端服务器 ---# proxy_set_header Hos
eisc
2022/01/08
3.4K0
Nginx 总结
如果是使用了两层或以上cdn(使用了cdn和web防火墙也适用),那么在nginx的配置文件http{}字段中加入
yiyun
2022/04/01
2890
宝塔反代HomeAssistant并添加SSL笔记
个人博客原文链接:https://www.9kr.cc/archives/114/
kr
2022/06/15
8.1K0
Nginx 之 realip模块 使用详解
使用:realip 功能需要 Nginx 添加 ngx_http_realip_module 模块,默认情况下是不被编译,如果需要添加,请在编译时添加 --with-http_realip_module 选项开启它。
YP小站
2020/06/05
7.9K0
【Nginx32】Nginx学习:随机索引、真实IP处理与来源处理模块
完成了代理这个大模块的学习,我们继续其它 Nginx 中 HTTP 相关的模块学习。今天的内容都比较简单,不过最后的来源处理非常有用,可以帮我们解决外链问题。另外两个其实大家了解一下就好。
硬核项目经理
2023/10/23
8350
【Nginx32】Nginx学习:随机索引、真实IP处理与来源处理模块
客户端IP获取
从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip地址,经过几个就会出现几个。
码客说
2021/02/25
4.7K0
nginx获取请求真实IP
realip模块会修改remote_addr和remote_port,会用一个realip_remote_addr和realip_remote_port表示nginx原来的地址和端口
十毛
2021/07/14
3.4K0
使用DaemonSet+Taint/Tolerations+NodeSelector部署Nginx Ingress Controller
在Kuberntes Cluster中准备N个节点,我们称之为代理节点。在这N个节点上只部署Nginx Ingress Controller(简称NIC)实例,不会跑其他业务容器。 给代理节点打上NoExecute Taint,防止业务容器调度或运行在这些节点。 # 给代理节点打上NoExecute Taint $kubectl taint nodes 192.168.56.105 LB=NIC:NoSchedule 给代理节点打上Label,让NIC只部署在打了对应Lable的节点上。
Walton
2018/04/16
1.7K0
Debian宝塔面板安装Ghost 博客
前言:为什么要在宝塔面板下装Ghost博客?源于我对宝塔的需求,方便于测试代码的时候能够快速的建立环境。至于宝塔的安全性问题就不必深究了,凡事都有双刃剑!
西安凡尘网络
2020/11/05
2.1K0
Nginx - 在Nginx中透传客户端真实IP的技巧
在使用 Nginx 作为反向代理服务器时,默认情况下,后端服务器只能看到 Nginx 的 IP 地址。为了记录日志、限制访问或进行其他基于 IP 地址的操作,获取客户端的真实 IP 地址非常重要。
小小工匠
2024/05/26
7.2K0
Nginx - 在Nginx中透传客户端真实IP的技巧
ASP.NET Core 搭配 Nginx 的真实IP问题
Nginx(Engine X)是一个高性能HTTP和反向代理服务,是由俄罗斯人伊戈尔·赛索耶夫为访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 如果你是一名 ASP.NET Core 开发人员,并且你的 ASP.NET Core 应用部署在Linux上,相信你应该或多或少与 Nginx 有过接触,在我们将 ASP.NET Core 部署在 Linux 上时,它是被用做反向代理的最好选择之一。今天和大家聊一聊当我们使用了 Nginx 反向代理后,我们程序中获取真实IP(客户端真实ip,本文简称“真实IP”)的问题。
晓晨
2018/12/12
9260
ASP.NET Core 搭配 Nginx 的真实IP问题
Nginx(Engine X)是一个高性能HTTP和反向代理服务,是由俄罗斯人伊戈尔·赛索耶夫为访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 如果你是一名 ASP.NET Core 开发人员,并且你的 ASP.NET Core 应用部署在Linux上,相信你应该或多或少与 Nginx 有过接触,在我们将 ASP.NET Core 部署在 Linux 上时,它是被用做反向代理的最好选择之一。今天和大家聊一聊当我们使用了 Nginx 反向代理后,我们程序中获取真实IP(客户端真实ip,本文简称“真实IP”)的问题。
晓晨
2018/11/12
1.7K0
ASP.NET Core 搭配 Nginx 的真实IP问题
获取客户端真实 IP 地址的最佳实践
公司从去年全面推动业务上云,而以往 IDC 架构部署上,接入层采用典型的 4 层 LVS 多机房容灾架构,在业务高峰时期,扩容困难(受限于物理机资源和 LVS 内网网段的网络规划),且抵挡不住 HTTPS 卸载引发的高 CPU 占用。
仁扬
2023/07/23
1.2K0
nginx反向代理获取客户端的真实IP和域名
nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中。
用户7639835
2021/08/28
4.8K0
反向代理与 Real-IP 和 X-Forwarded-For
本文作者张开涛。为保障《亿级流量网站架构核心技术》一书内容的连续性,有些需要读者了解的内容,或者书的补充和引申内容,会通过二维码嵌入的方式引导读者阅读学习。大家可以关注作者公众号“开涛的博客”,并从菜单栏“我的新书”中查阅相关内容。
博文视点Broadview
2020/06/11
3.4K0
Nginx反向代理配置
反向代理(Reverse Proxy)是一种网络服务器的部署模式,其代理请求的方向与正常的代理服务器相反,即客户端发送请求时,请求先到达反向代理服务器,然后再由反向代理服务器将请求转发到目标服务器,最后将响应发送回客户端。
灬沙师弟
2023/07/08
1.1K0
Nginx反向代理配置
nodejs+nginx获取真实ip
nodejs + nginx获取真实ip分为两部分: 第一、配置nginx; 第二、通过nodejs代码获取; 其他语言也是一样的,都是配置nginx之后,在http头里面获取“x-forwarded-for”. 第一、配置nginx location / {   proxy_set_header Host $http_host;   proxy_set_header X-Real-IP $remote_addr;   proxy_set_header X-Forwarded-For $proxy_add_
磊哥
2018/05/08
3K0
腾讯云轻量Docker部署单节点MinIO
因为腾讯云最近新推出了轻量应用服务器的云硬盘,相对于CVM的云硬盘性能几乎一模一样,而且因为上新做活动3年的1TB云硬盘只要59.7元,直接让轻量变身超级大盘鸡,我就寻思着能不能拿这硬盘整点花活,正巧听说了有个开源且成熟的对象储存系统MinIO,索性就拿来试试水……
SakuraRain
2022/03/10
3K0
nginx获取客户端请求的真实IP
客户端通过nginx代理访问后端tomcat服务器时,后端服务器收到的请求信息中只有nginx代理的IP信息,无法看到client的真实IP,
Java架构师历程
2020/02/19
5.1K0
相关推荐
网站使用CDN的情况下nginx日志如何记录真实IP
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档