首页 > 系统相关 >在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip

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

时间:2024-04-09 18:24:26浏览次数:34  
标签:set ip request nginx proxy fastapi

在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

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

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

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的代码改成下面这样

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)

标签:set,ip,request,nginx,proxy,fastapi
From: https://www.cnblogs.com/studyinglover/p/18124511

相关文章

  • 【教程】App打包成IPA文件类型的四种方法
     摘要本教程总结了将App应用程序打包为IPA包的四种常用方法,包括Apple推荐的方式、iTunes拖入方法、自动编译脚本和解压改后缀名方法。每种方法都有其特点和适用场景,在实际开发中可以根据需求选择合适的方式进行打包。通过本教程,您将了解到不同打包方式的优缺点,并学会如何利用脚......
  • vue3 + typescript 检测高德地图类型
    在ts项目中使用高德地图,为了方便使用类型检测及类型提示,需引入高德地图的类型文件,操作如下:1、引入@amap/amap-jsapi-types插件npmi-S@amap/amap-jsapi-types2、新建类型文件types/index.d.tsimport'@amap/amap-jsapi-types';3、在tsconfig.json中配置:"include":[......
  • Excel进行IP的字符型与整形互转
    假设原IP所在的单元格为A1,那么在需要显示正常IP的单元格中输入以下公式:1、ip地址字符型转换成整形:=LEFT(A1,FIND(".",A1)-1)*256^3+MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-FIND(".",A1)-1)*256^2+MID(A1,FIND(".",A1,FIND(".",......
  • 本地开发nginx代理服务器
    1、nginx解释nginx 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Nginx是优秀的代理服务器和负载均衡服务器;在安装配置上,Nginx安装简单、配置灵活。Nginx......
  • Haiper:免费AI视频工具,媲美Sora (附使用教程)
    大家好,我是斜杠君。今天为大家介绍一款AI视频工具。它不仅免费使用,效果稳定,媲美Sora,而且操作简单,是视频创作者的理想伙伴。使用教程免费使用:无门槛的创作体验无订阅,无积分,无限制。这款AI视频工具的最大优势在于它的免费性。用户无需担心订阅费用或是积分制度,可以随时随地开始他......
  • iPad 10哪个颜色好看?iPad 10处理器是什么型号?
    苹果iPad10将会搭载A14Bionic处理器。A14芯片采用台积电5nm工艺,集成了118亿晶体管,Geekbench平台上3.1GHz主频下达到了单核1658分、多核4612分。它采用6核心设计,4个节能核心及2个效能核心,性能方面与上一代iPadAir的A12处理器相比提升了40% iPad10更多使用感受......
  • 2022款iPad Pro是什么处理器?2022款iPad Pro屏幕尺寸多大?
    2022款iPadPro屏幕会有两个尺寸版本,分别是11英寸和12.9英寸,其中11寸版将采用LCD屏幕,而12.9寸版为mini-LED。2022款iPadPro依旧采用了全面屏设计,FaceID面容解锁方式,Type-C接口。iPadPro更多使用感受和评价 https://u.jd.com/Vqzdasz2022款iPadPro的处理器是M2芯......
  • 13. TypeScript中的联合类型和交叉类型
    在TypeScript中,类型系统提供了多种方式来组合类型,其中最常见的就是联合类型和交叉类型。这两种类型都允许你以灵活的方式处理可能有多种类型的值。一、联合类型1.1定义在TypeScript中,联合类型是一种复合类型,表示一个值可以是几种类型之一。我们使用|符号来定义联合类型......
  • 14. TypeScript类型保护(类型缩小、类型守卫)
    类型保护是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。TypeScript类型保护的方式类型断言类型断言是一种告诉编译器“相信我,我知道我在做什么”的方式。......
  • Centos 7 yum 安装nginx
    要在Centos7上使用yum安装nginx,您可以按照以下步骤操作:打开终端或SSH连接到您的Centos7服务器。确保您具有sudo权限或root权限。运行以下命令更新yum包管理器的软件包索引:sudoyumupdate运行以下命令安装nginx:sudoyuminstallnginx确认安装过程中会提示您是否......