浏览器自动将http请求转成https请求

时间:2025-02-28 20:21:14

背景

  • https是用于项目网页的请求
  • http用于静态资源图片视频的加载

出现问题

  • 使用google浏览器可以正常加载图片,但是访问视频时,浏览器自动将http请求转成https,就查不到视频资源了
  • 使用windows自带的浏览器,图片,视频都被转成了https请求

原因

  • 浏览器会自作主张将访问静态资源的http请求转成https请求,而我后台加载静态资源使用的nginx,nginx静态资源监听的80端口
  • http请求默认用的80端口,https请求默认用的443端口,所以访问不到静态图片和视频

解决

  • 知道了原因,就开始解决
  • 将静态资源和网页访问入口都使用https来处理

具体修改位置

  • nginx的配置,将监听80映射的静态路径,添加到监听443端口映射的位置,配置如下

注意 root配置和alias配置,
前台请求静态资源需要在原来请求基础路径上再拼接上/upload/(如:https://域名/upload/xxx/)

## 访问静态网页
location / {

            root   /usr/local/src/web/dist;
                        try_files $uri / = 404;
        }
## 访问静态资源(图像,视频)
        location /upload/ {
          alias  /opt/images/upload/;
              try_files $uri / = 404;
        }

  • 前台请求资源直接使用https,而不使用http