通过AWS ALB Nginx代理Jenkins引发的一个问题

问题描述

研发同事反映,部分浏览器访问jenkins会返回 "400 Bad Request: The plain HTTP request was sent to HTTPS port"

URL由https://a.example.com/jenkins跳转成http://a.example.com:443/jenkins,主要在登录和注销时出现错误

原因

由于前端代理为https,但jenkins页面中加载的众多js中多为动态加载,如果后端是http,动态加载的js就会走http,导致js报错从而导致一些功能不能用,这样浏览器就会产生400错误

解决方法

在nginx.conf中jenkins对应的location中增加proxy_set_header X-Forwarded-Proto $scheme;,正确识别实际用户发出的协议是http还是https

相关推荐
小时候的阳光4 小时前
Docker版Percona Xtrabackup全量压缩脚本
运维·docker·容器
4***17546 小时前
Nginx auth_request详解
运维·nginx·xcode
梦想的旅途26 小时前
企业群运营自动化:RPA技术高效赋能
运维·自动化·rpa
꒰ঌ小武໒꒱6 小时前
RuoYi-Vue 前端环境搭建与部署完整教程
前端·javascript·vue.js·nginx
hhwyqwqhhwy7 小时前
Linux file->private
linux·运维·服务器
WongKyunban7 小时前
在Linux下制作软件安装包
linux·运维·服务器
hweiyu007 小时前
Linux 命令:parted
linux·运维·服务器
烽火聊员7 小时前
CertificateCreator生成服务器证书server.pfx
运维·服务器
搞全栈小苏8 小时前
Linux下 cmake所有版本适用/下载编译使用教程 附cmake3.26安装包
linux·运维·ubuntu
MyFreeIT8 小时前
Docker Manual
运维·docker·容器