nginx配置反向代理服务器,实现在https网站中请求http资源

网站使用nginx作为服务器,协议从http升级为https的注意事项。

具体升级步骤请点击搜索

1、首先,修改宝塔面板配置

选择配置文件,http请求重定向为https。所有80端口请求都重定向为https请求

# server代表的是nginx其中的一个服务器
server
{
    listen 80; # listen表示监听端口号80 (http)
    listen 443 ssl http2; # 表示监听443 端口号(https)
    server_name www.abc.com abc.com ip地址; # server_name表示服务器名称,现在同时匹配3个
    index index.php index.html index.htm default.php default.htm default.html; # 匹配/www/wwwroot/abc/index.html
    root /www/wwwroot/abc; # abc表示路径,网站的起始位置为/www/wwwroot/abc
    

    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){ # 端口号不等于443,则重写url到https://当前主机/后面所有路径,并永久重定向(permanent)
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

2、接着配置代理服务器

# 代理serve图片服务器api
    location /api/ {
   # 通过代理,访问https://ip|域名/api/...时,代理到http://你的ip或域名:3004/api/...
        proxy_pass http://你的ip或域名:3004; # 注意`http://你的ip或域名:3004`末尾不添加`/`,这样的话`/api/`将会添加到3004后面
        proxy_redirect  off;
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto  $scheme;
    }
    
    # 代理音乐服务器api
    # /musicapi/,必须加上后面的/,不然代理服务不成功
    location /musicapi/ {
    # 访问https://你的ip或域名/musicapi/...,
    # 代理到http://你的ip或域名:3005/...,不包括/musicapi
        proxy_pass http://你的ip或域名:3005/; # 这里末尾添加了`/`,将不会添加`/musicapi/`在端口号后面
        proxy_redirect  off;
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto  $scheme;
    }

3、完成上面所有配置后

http网站升级到https网站,浏览器可正常访问网站,网站请求的api接口,需要从http://ip|域名:3005/lyric?id=32507038修改为http(s)://ip|域名/musicapi/lyric?id=32507038。这里的流程就是,把原本请求的:3005/musicapi替换掉,然后浏览器发出并重定向成https开头的请求,接着nginx发现你的请求中带有/musicapi,就把你的请求转发给匹配上的http://你的ip或域名:3005/服务器。

4、最后还要在原来的index.html文件里添加

# 把http链接升级为https
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

5、或者可以操作服务端的话,也可以在nginx配置里添加

server
{
    listen 80;
    listen 443 ssl http2;
    ......
    #升级可以升级为https的连接,兼容http
    add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *"; 
}

参考nginx中文配置

0 条评论
请不要发布违法违规有害信息,如发现请及时举报或反馈
还没有人评论呢,速度抢占沙发!
相关文章
  • 背景 之前在一次不规范HTTP请求引发的nginx响应400问题分析与解决 中写过客户端query参数未urlencode导致的400问题,当时的结论是: 对于query参数带空格的请求,由于其不符合...

  • Nginx http 文件服务器 中文名称文件乱码以及不能访问下载问题 (解决全过程) 问题起因: 首先是发现放在 Nginx 共享文件夹下的中文文件会出现乱码问题 初步解决办法: 检...

  • 阿里云申请免费证书、域名解析以及nginx部署配置https为微信小程序服务 时间:2022.11.23  作者:飞快的蜗牛     关键字:申请免费证书、域名解析、nginx配置部署https...

  • # 安装certbot yum install certbot python2-certbot-nginx -y # 自动配置, --nginx-server-root指定nginx配置文件目录 ce...

  • 准备工作 需要先准备好你域名对应的证书和私钥,也就是cert证书和key。我部署是很常见的ng+tomcat双层配置,ng作为前端的代理,所以tomcat就不需要自己处理https,ng作为代理以ht...

  • HOW TO USE NGINX TO BUILD A FILE SERVER WHAT IS THE NGINX ? “Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步...

  • HTTP 缓存 缓存的目的 主要作用是可以加快资源获取速度,提升用户体验,减少网络传输,缓解服务端的压力。 强缓存 不需要发送请求到服务端,直接读取浏览器本地缓存,显示的 HTTP 状态码是 200 ...

  • 需求:有时后比如WPF,WinForm,Windows服务这些程序可能需要对外提供接口用于第三方服务主动通信,调用推送一些服务或者数据。  实现方式:     一、使用Socket/WebSocket...

  • 公司最近加了个需求,需要给正在开发的静态原生页面新增登录请求接口的逻辑,原本不需要学nginx的,这下不得不学了,做完以后回过头来看,其实非常的简单。开始安装niginx:直接去官网进行下载http:...

  • 1、这篇文章的由来 之前已经发表了《ABAP 调用HTTP上传附件》的文章,详细介绍了如何通过HTTP请求传输附件,可点击链接参考原有文档 因为之前对传输文件的中文文件名处理上解释不够详细,也因为不够...

  • 最近在做一款轻量级IM产品,后端技术栈框架使用了nodejs + nestjs作为服务端。同时,还需要满足一个服务同时支持HTTP服务调用以及WebSocket服务调用,此文主要记录本次搭建过程,以及...

  • 1 基于ansible role实现编译安装nginx 利用ansible控制端10.0.0.8机器,在被控制端10.0.0.18上部署nginx 首先打通ansible控制端与被控制端的基于key验...

  • 在nginx的配置中,是否对rewrite的配置模糊不清,还有令人迷惑的$1、$2...参数,(其实$1、$2参数在shell脚本中经常用到,用来承接传递的参数)。本篇从反向代理配置的角度帮助理解一下...

  • HTTP 超文本传输协议(Hypertext Transfer Protocol) HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 网络模型网络是一个复...

  • 本来啊,本来,本来我在准备完善这个鸽了四年的系列的时候,是打算按照时间的顺序来完成的,好吧。我承认那个时候考虑的稍稍稍稍稍微有些不足,就是我忽略了HTTP协议的“模块性“。因为虽然按照时间顺序写写流水...

  • 什么是 gRPC 像gRPC是由google开发的一个高性能、通用的开源 RPC 框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言。 gRPC基于 HTTP/2...

  • 1.HTTP是什么? http是超文本传输协议用来在web浏览器和网站服务器之间传递数据信息,http以明文的方式发送内容,不提供任何方式的数据加密,如果攻击者截获了Web浏览器和网站服务器之间的传输...

  • Nginx 进阶篇 五、 服务配置 经过前面的操作,我们会发现,如果想要启动、关闭或重新加载nginx配置文件,都需要先进入nginx的安装目录的sbin目录,然后使用nginx的二进制可执行文件来...

  • 1、环境准备 要点: 1、使用一个FQDN统一作为API Server的接入点; 2、加入集群之前,每个节点都将该FQDN解析至第一个Master; 3、加入集群之后,每个Master节点将该FQDN...

  • 在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了。这两篇文章...