Client sent an HTTP request to an HTTPS server

背景

最近踩坑了

我发现域名:8000可以访问我的服务

但是域名:443却不行,这很反常

结果发现是nginx配置的问题,需要把http改成https!

原因

如果你的后端服务(运行在8000端口上)已经配置了SSL并且可以直接处理HTTPS请求,那么你的Nginx配置中的 proxy_pass 指令应该使用 https:// 协议前缀,而不是 http://。这是因为 proxy_pass 指令告诉Nginx将进来的请求转发到指定的地址。

通常情况下,如果后端服务没有配置SSL(即它只能处理HTTP请求),那么Nginx的 proxy_pass 应该是这样的:

nginx 复制代码
location / {
    proxy_pass http://127.0.0.1:8000;
}

但是,如果后端服务本身已经配置了SSL,那么你需要告诉Nginx使用HTTPS协议来与后端服务通信,像这样:

nginx 复制代码
location / {
    proxy_pass https://127.0.0.1:8000;
}

这时,你需要确保Nginx信任后端服务的SSL证书,或者配置Nginx忽略SSL证书验证(这在生产环境中通常不推荐)。如果后端服务使用的是自签名证书,你可能需要在Nginx配置中添加指令来指定证书。

如果你的后端服务并未配置SSL,那么上述的更改是不需要的,因为Nginx会处理SSL加密,并将解密后的HTTP请求转发给后端服务。

相关推荐
2501_915918413 小时前
苹果App Store上架审核卡住原因分析与解决方案指南
android·ios·小程序·https·uni-app·iphone·webview
IT小白33 小时前
windows的VMware虚拟机上的Linux系统(CentOS)配置永久ip(关机重启ip不变)
网络·网络协议·tcp/ip
蛊明5 小时前
批量检测 IP 是否在线:CPing vs QuickPing
网络·网络协议·tcp/ip
路由侠内网穿透.5 小时前
本地部署开源书签管理工具 LinkAce 并实现外部访问( Linux 版本)
linux·运维·服务器·网络·网络协议·开源
2301_805962938 小时前
ESP32远程OTA升级:从局域网到公网部署
网络·后端·http·esp32
爱吃生蚝的于勒11 小时前
【Linux】网络之http协议
linux·运维·服务器·网络·数据结构·c++·http
程序员大飞哥11 小时前
T-Box双SIM卡的"幻觉":为什么有两张卡却还在断连?
网络协议
吠品11 小时前
UniApp Vue3中实现rem自适应布局:动态基准值与设计稿适配实践
tcp/ip·https·ssl
Sean‘12 小时前
Rancher 日志无法显示?WebSocket 代理配置是罪魁祸首
websocket·网络协议·rancher
树下水月12 小时前
微信小程序接口,必须使用https的443端口吗?
微信小程序·小程序·https