Nginx转发https请求

问题描述

  1. 前后端分离项目,前端使用Nginx部署,后端是Spring Boot项目,使用tomcat部署。
  2. Nginx配置了SSL,并且前端项目需要https协议访问。后端接口任然使用http访问。
  3. 前后端项目部署在同一个服务器中。

当在前端中直接用http协议访问后端的接口可能出现的问题如下:

问题原因,因为前端是使用了https,所以经过前端访问后端接口是也要用https协议进行访问。但是Spring Boot项目在没有做多额外的SSL配置或者请求转发的情况下不能直接通过https协议访问的。

解决思路

将前端的请求经过Nginx的转发成http请求之后在发送给后端接口

修改Nginx的配置后如下

关于Nginx配置https协议的博文参考。在这个的基础上添加如下配置

location /api/ {proxy_pass http://www.baidu.com:8084/;       # 注意最后有个/,会去掉/api前缀
}

以www.baidu.com为例,这样配置Nginx会转发所有以/api开头的URI。通常都会在接口访问路径前面加上/api,然后到nginx配置去掉这个前缀。

我们在前端中访问后端的接口的路径为

https://www.baidu.com:8084/api/get/user/1

则经过该请求会被Nginx所转发,访问的后端接口路径为

http://www.baidu.com:8084/get/user/1

刚开始去网上查得一头雾水,有说让Spring Boot配置SSL支持Https的请求的,有说可以使用两份SSL证书实现的,都比较复杂,有些试了并不行,可能是遇到的问题的场景不一样。之后理清问题之后再去请问师兄,得到了这个相对简单的解决方案。遇到问题之前还是得想明确自己的问题是什么,和网上所描述的问题背景是否一致,毕竟大家遇到问题的场景可能有些区别。

Nginx转发https请求访问http后端接口相关推荐

  1. windows 上配置 nginx 转发 https

    windows 上配置 nginx 转发 https 1.需求分析 2.前提条件 3.生成证书 3.1.软件 3.2.申请证书 4.修改配置 1.需求分析 工作环境中,使用云桌面(win10)进行开发 ...

  2. Nginx转发https

    首先看看nginx转发http请求的配置文件: server { listen       80;#代理监听的端口 server_name  localhost;#代理的地址 location / { ...

  3. wamp3.0.6配置https + Nginx转发 + 满足微信小程序的接口调用域名

    环境:winserver2012 R2 wamp环境 安卓无法发起请求https://www.jianshu.com/p/61695bfae5f7?utm_campaign 一.  wamp3.0.6 ...

  4. 宿主机使用nginx向docker容器转发https请求

    转载地址:https://blog.csdn.net/qq_32080545/article/details/85221112 实现步骤: 1.给容器添加端口映射: 2.宿主机nginx中配置SSL证 ...

  5. Nginx的Https配置及代理api接口配置

    文章介绍nginx如何配置https并配置代理java接口 1.获取证书 使用certbot生成证书:如何生成证书? (1)将cert.pem复制到该工具进行解析 进入工具网站转换pem (2)解析完 ...

  6. nginx转发post请求

    应用场景: 由于项目迁移,旧接口的代码重新部署在了另外一个域名下的项目,比如: 旧接口地址:https://cecshop.com/api/recommend/add 新接口地址:https://ca ...

  7. springboot配置进行https请求访问demo

    SpringBoot配置https 代码地址:springboot配置https 1.配置https相关要求 需要通过命令生成相关的证书,springboot通过证书才能够进行端口转发到https请求 ...

  8. nginx转发https到http

    微信小程序和公众号,要求外链的页面或API必须使用https.https意味着需要证书,在测试阶段,很不方便,因此部署的测试站点都是http.于是尝试在现有的https站点中,用nginx转发请求到只 ...

  9. python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证

    1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...

最新文章

  1. LeetCode简单题之最长特殊序列 Ⅰ
  2. 服务器python密码_python实现批量修改服务器密码的方法
  3. 人才市场最吃香四个专业,就业前景好,很容易拿到高薪!
  4. 088_html5表单属性
  5. matlab的知识点1
  6. web app指南之构建html5离线应用
  7. HDU5119 - Happy Matt Friends
  8. centos7 安装Gitlab
  9. java--idea--生成jar包-2
  10. JavaScript监听浏览器刷新或是关闭事件
  11. 解决:AttributeError: ‘str‘ object has no attribute ‘decode‘
  12. java resourcebundle_java.util.ResourceBundle使用详解
  13. pyecharts中文手册
  14. git .git目录提交_入侵git目录
  15. Word-去掉标题前面的小黑点
  16. 大学生电脑装什么软件?我整理了 10 款 Windows 神器,个个都是宝藏级!
  17. 【Kafka】Kafka消费者相关策略
  18. 微型计算机的基础知识
  19. 离散数学:关系的性质
  20. Mybatis Plus基础06 mapperLocations配置(指定Mapper.xml文件路径)

热门文章

  1. Python把图片转化为pdf代码实例
  2. Java 线程池作用及类型
  3. VMware Workstation 16 Pro 中的虚拟机使用宿主机的COM口
  4. 解决了:无法加载文件或程序集'stdole, Version=7.0.3300.0'
  5. 应用文表述计算机应用技术,在应用文写作中,常用的叙述方法是?
  6. Windows Phone实例开发:快递查询助手 - [WP开发]
  7. Docker 搭建 LNMP 环境
  8. java常见错误示例——JUC并发工具类库导致的线程安全问题
  9. 大数据初级笔记一:大数据入门介绍
  10. 一个典型的信息化建设该如何规划?