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

解决http的web服务中与https服务交互的问题

问题背景:

需要在一个http的web服务中直接跟另一个https服务交互,不经过自身后端。
又来到了熟悉的跨域访问问题。
解决逻辑就是使用nginx转发,涉及到的文件也就是nginx.conf文件,前面解决minio链接时已经有经验了,但没想到这次的跨域问题还是折腾了我好几个小时,记录一下。

解决方式

配置nginx转发服务, 增加https服务的转发。
这次我没有像解决minio链接里那样改写请求路径,直接使用了https原本的uri。

# nginx.conf
upstream httpsService {server https-service.com:443;
}server {listen       80;server_name  _;access_log  /xx/xx/access.log full_proxy_log;location /api/openApi {proxy_pass https://httpsService ;proxy_set_header Host https-service.com;}....}

如果转发还是报错,修改nginx的日志打印格式,看看是host问题还是uri问题。

access_log  /xx/xx/access.log full_proxy_log;  

其中的full_proxy_log是我新增的日志格式。完整内容如下:

# nginx配置入口文件,跟上面的不是同一个哈
http {...log_format full_proxy_log '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent" ''-> $upstream_addr$request_uri';....
}

日志输出示例:

10.30.115.58 - - [18/Jul/2025:22:16:22 +0800] "POST /api/openApi/token HTTP/1.1" 200 460 "-" "PostmanRuntime/7.44.1" -> xx.xx.xx.xx:443/api/openApi/token

踩坑点

1.server https-service.com:443;这里的端口一定要带上,否则nginx默认会转发到80端口。即使你在proxy_pass中使用了https
2.proxy_set_header Host https-service.com;要加,不然会有时候成功,有时候失败。

总结

遇到错误要冷静分析日志,日志不详细就要想办法加,而不是像无头苍蝇一样乱试。

http://www.dtcms.com/a/295805.html

相关文章:

  • 平时遇到的错误码及场景?404?400?502?都是什么场景下什么含义,该怎么做 ?
  • AI实践:Pydantic
  • 大模型Prompt优化工程
  • pdf文件的属性值怎么修改?修改PDF内部的属性创建时间和修改时间
  • Lua(垃圾回收)
  • omofun官网网站入口,动漫在线看|官方下载
  • AI服务器给一体成型电感带来多大的市场空间
  • 网络编程——聊天程序实现
  • FreeSWITCH 简单图形化界面45 - 收集打包的一些TTS
  • 复矩阵与共轭转置矩阵乘积及其平方根矩阵
  • 【建模与仿真】融合共现网络特征与知识增强语义梯度提升电子邮件分类
  • HttpServletRequest深度解析:Java Web开发的核心组件
  • LLM中的位置嵌入矩阵(Position Embedding Matrix)是什么
  • [语言模型训练]基于 PyTorch 的双向 LSTM 文本分类器实现:基于旅店的评论分类语言模型
  • LeetCode 2563.统计公平数对的数目
  • Edwards爱德华泵软件 支持nEXT85和nXDS系列泵,包括nXRi, nRVi和nXLi增强型 nEXT nXDS nXLi
  • 【自动化测试】JMeter+Jenkins自动化接口与性能测试环境部署指南
  • Java学习第七十部分——微服务架构
  • JavaWeb_原始项目初识(一)
  • ubuntu25.04+4070+cuda+docker安装
  • 进程通信————命名管道
  • Python-初学openCV——图像预处理(二)
  • 怎么样知道服务端是否支持sse服务?
  • 在 Ubuntu 20.04 上轻松安装和使用中文输入法
  • ZooKeeper 是什么?
  • day20 双向链表
  • 基于CloudBase+React+CodeBudddy的云上智能睡眠应用开发实践
  • 网易大模型算法面经总结第一篇
  • uni-app小程序云效持续集成
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(三)