Nginx转发https请求访问http后端接口

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
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值