当前位置: 首页 > news >正文

后端通过nignx代理转发,提供接口供前端在防火墙外访问

如题:
前端页面通过防火墙nat到外网,而后端接口均在内网。导致外网访问前端页面无法获取后端接口。

解决方案:
通过nginx代理转发后端接口路径。
在前端axios接口中,配置统一的baseurl为/api。

在nginx配置文件加上/api的location,并设置转发内网的后端url。

server {listen 80;server_name 100.100.100.100; # 更换为您的域名# 根目录和索引文件root /usr/share/nginx/html; # 确保这是您的静态文件路径index index.html index.htm;# 为根目录提供文件location / {try_files $uri $uri/ /index.html;}# 防止 .htaccess 和 .htpassword 等隐藏文件的访问location ~ /\. {deny all;}# 新增:后端API代理配置location /api/ {proxy_pass http://192.168.1.100:8080/; # 后端服务器地址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;}# 可选:静态资源缓存配置location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {expires 7d;add_header Cache-Control "public, no-transform";}
}

需要注意的是,前端axios的baseurl不可写死后端url,不可为http://xxxx:8080等url,也不可为http://xxxx.com等域名,设置IP和域名后nginx无法完成代理转发。所以必须为/api等,让url默认跟随前端url前缀,才可以完成nginx转发。

相关文章:

  • Arduino入门教程​​​​​​​:4、打印字符到电脑
  • python中的模块化编程:日期模块、math算术模块、random模块
  • 国学IP行业实战洞察:聚焦创客匠人,解锁创始人IP与知识变现新路径
  • TDengine 如何从 2.x 迁移到 3.0
  • 用bilibili一个讲座视频,生成一本科普书籍
  • 苍穹外卖-day09
  • 湖北理元理律师事务所债务优化实务:平衡还款与生活的法律路径
  • (下)通用智能体与机器人Transformer:Gato和RT-1技术解析及与LLM Transformer的异同
  • uni-app项目实战笔记10--设置页面全局渐变线性渐变背景色
  • 上位机开发中的设计模式(3):装饰器模式
  • Flutter动画与交互:打造流畅用户体验的完整指南
  • QT集成Boost库
  • LeetCode - 34. 在排序数组中查找元素的第一个和最后一个位置
  • 【DSP笔记 · 第4章】算法的奇迹:快速傅里叶变换(FFT)如何改变世界
  • 理解C++中传引用和传值的区别
  • 【leetcode】169. 多数元素
  • C# WinForms 实现打印监听组件
  • 使用 Flutter 在 Windows 平台开发 Android 应用
  • 人工智能学习28-BP过拟合
  • 创客匠人视角:知识IP变现的主流模式与创新路径
  • 仙桃建设网站/抖音seo是什么
  • 网站建设技术发展趋势预测/全球外贸采购网
  • 一般网站有哪几部分构成/日照seo公司
  • 大连在哪个网站做网上核名/厦门网站综合优化贵吗
  • 汕头网站制作方法/中国疫情最新数据
  • 网络推广营销策划/山东网站seo