网站使用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中文配置

nginx配置反向代理服务器,实现在https网站中请求http资源的更多相关文章

  1. Nginx配置反向代理服务器

    首先,在阅读<深入理解Nginx模块>后,大体了解了配置反向代理服务器一些常见的配置.如下进行说明:” l  Nginx worker进程个数 语法: worker_processes n ...

  2. apache 配置反向代理服务器

    前几天实验了下 nginx 配置反向代理服务器.虽然 nginx 的安装很麻烦,但是用起来倒是很简单.不过组里没人用过 nginx,apache 服务器大家倒是蛮熟,为了减少 ops team 的工作 ...

  3. nginx配置http强制跳转https

    nginx配置http强制跳转https 网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. 一.采用nginx的rewrite方法 ...

  4. 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

  5. 配置Nginx作为反向代理服务器

    最近在实习公司的开发一个项目,项目是前后端彻底分离的项目,前端项目和后端项目各监听着特定的端口号,显然不是80的通用端口,为了不在地址栏上输入IP+端口号的形式,我们可以使用Nginx作为反向代理服务 ...

  6. Nginx搭建反向代理服务器过程详解

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

  7. 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用

    最近在看关于Docker和Nginx方面的内容,先于在Docker上开发以及部署python应用自然要先能够在本机上部署,其中找到一篇文章写的最为详细并且实验成功,所以在此翻译转载过来以备后需.[原文 ...

  8. Nginx搭建反向代理服务器

    [大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器   一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受int ...

  9. Nginx 搭建反向代理服务器过程详解

    1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet ...

  10. 【转】Nginx搭建反向代理服务器过程详解

    阅读目录 1.1 反向代理初印象 1.2 反向代理的作用 2.1 Nginx是神马? 2.2 Nginx的应用现状 2.3 Nginx的核心特点 3.1 准备一个ASP.NET网站部署到IIS服务器集 ...

随机推荐

  1. vue v-for 循环中,下拉框 el select 设置初始值 v-model

    效果图: 2.解决思路是,v-model 赋值 单独创建一个数组,然后用于接收下拉框的值,然后提交的时候,将这个数组的值,放到提交的数组中. 3.参考: 解决v-for中遍历多个el-select时, ...

  2. java 泛型使用

    泛型类 // 简单泛型 class Point<T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; public T getVar(){ return ...

  3. 如何保证RabbitMQ不会被重复消费?

    为什么会有重复消费? 做一个标志! 在将生产者写消息的时候,对数据做一个唯一标识.消费者在消费消息时,根据这个唯一标识做判断,如果这个唯一标识被消费过了,那么就 不消费了,如果判断结果是没有被消费过, ...

  4. Linux 使用vsftpd服务传输文件

    文件传输协议 FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命 ...

  5. c++学习7 指针与数组

    一 二维数组与数组指针的关系 二维数组名,代表的是第0行的行地址,"+1"是跳过一个行.而取" * "的话,则是在当前行地址基础上再取列地址,那么如果我们再取一 ...

  6. Android自动化测试

    一.环境搭建 必备软件: Windows或MacOS系统的电脑 python pycharm Android SDK(需要配置环境变量,网上有教程) Appium客户端(需要配置Android SDK ...

  7. gitt如何将本地分支同远程分支进行关联

    将本地分支同远程分支进行关联,1.本地已经创建了分支test(test,是master以外自己创建的分支),而远程没有2种方法在远程创建分支test,并与本地分支进行关联: 方法1: git push ...

  8. 高德地图使用websocket后重新设置点进行优化

    // 设置第一次点赋值,重新定义一个新数组,将设备号为对象名,索引值作为键值 const getListNEW = useCallback( (params, reload, gps) => { ...

  9. CNN_LSTM

    1.keras/examples at master · keras-team/keras · GitHubhttps://github.com/keras-team/keras/tree/maste ...

  10. PHP程序的“Missing argument 3”的错误提示解决方法

    是在定义函数时为三个参数,但实际调用时只调了两个参数   解决办法: 一种:在调用函数地方补全调用的参数 二种:修改函数传入参数值,设置带有默认值,     Missing argument 3 fo ...