【摘要】 本文介绍使用华为云弹性负载均衡配置Http重定向到Https的方法。

1. HTTPHTTPS 头部标识

ELB 对 HTTPS 进行代理,无论是 HTTP 还是 HTTPS 请求,到了 ELB 转发给后端 ECS 时,都是 HTTP 请求。这使开发者无法分辨前端的请求是 HTTP 还是 HTTPS。

ELB 在将请求转发给后端 ECS 时,头部 header 会植入 X-Forwarded-Proto:

X-Forwarded-Proto: http (前端为 HTTP 请求)

X-Forwarded-Proto: https (前端为 HTTPS 请求)

2. 弹性负载均衡配置

1. 创建负载均衡

1.  在负载均衡内创建HTTP:80端口监听器,后端云服务监听选择HTTP/8080端口,健康检查选择TCP协议(不能使用HTTP协议的健康检查)

3.在上一步骤创建的HTTP协议监听器下添加后端云服务器

4.在负载均衡内创建HTTPS:443端口监听器,后端云服务监听选择80端口,健康检查选择协议可以TCP也可以HTTP

5.在上一步骤创建HTTPS监听器下添加后端云服务器(可以和步骤3是同一批虚拟机)

6.一个ELB下两个监听器,分别监听HTTP:80和HTTPS:443,客户端访问HTTP:80会被重定向到HTTPS:443

后端Nginx服务器配置

假定用户需要访问网站 https://test.com 。开发者希望用户在浏览器中输入网址时,直接键入www.test.com 即可通过 HTTPS 协议安全访问。

此时用户输入的 www.test.com 请求转发流程如下:

1.  该请求以 HTTP 协议传输,通过弹性负载均衡提供的服务地址访问弹性负载均衡监听器的 80 端口,并被转发到后端云服务器的 8080 端口。

2.  通过在后端服务器的 nginx 上配置 rewrite 操作,该请求经过 8080 端口,并被重定向到 https://test.com 页面。

3.  此时浏览器再次发送 https://test.com 请求到相应的 HTTPS 站点,该请求通过弹性负载均衡提供的服务地址访问弹性负载均衡监听器的 443 端口,并被转发到后端云服务器的 80 端口。

至此,请求转发完成。

该操作在浏览器用户未感知的情况下,将用户的 HTTP 请求重写为更加安全的 HTTPS 请求。为实现以上请求转发操作,用户可以对后端Nginx服务器做如下配置:

server {

    listen 8080;

    server_name test.com;

    rewrite ^/.(.*) https://$host/$1 redirect;

}

或者采用推荐的301重定向配置方法,将nginx http页面重定向到https页面:

server {

      listen      8080;

      server_name    test.com;

      return      301 https://$server_name$request_uri;

}

作者:樱桃小丸子

【华为云网络技术分享】HTTP重定向HTTPS配置指南的更多相关文章

  1. 探索云网络技术前沿,Sigcomm 2019 阿里云参会分享

    Sigcomm 2019简介 一年一度的网络顶级学术峰会Sigcomm于8月20日至22日在北京举行.作为ACM Special Interest Group on Data Communicatio ...

  2. 性能达到原生 MySQL 七倍,华为云 Taurus 技术解读【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  3. 道里云SDN云网络技术:使云能够“众筹”

     容器云来了! 容器云的网络规模将比虚拟机云的情况扩大10-100倍,容器云与虚拟机云互联需求也将使云网络管控复杂度成数倍增长.SDN业界迎来了空前挑战.本报告分享道里云公司SDN技术:怎样将云的 ...

  4. Apache https 配置指南

    Windows Apache HTTPS配置创建下面3个目录: C:\Program Files\Apache Group\Apache2\conf\sslC:\Program Files\Apach ...

  5. 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现

    当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...

  6. DevOps on DevCloud|如何采用流水线践行CI/CD理念【华为云技术分享】

    [摘要] 持续集成/持续交付(CI/CD,Continuous Integration/Continuous Deployment)在DevOps CMALS理念中具有支柱性地位,因而CI/CD流水线 ...

  7. 【华为云技术分享】数据库开发:MySQL Seconds_Behind_Master简要分析

    [摘要]对于mysql主备实例,seconds_behind_master是衡量master与slave之间延时的一个重要参数.通过在slave上执行"show slave status;& ...

  8. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  9. 解构华为云HE2E项目中的容器技术应用

    摘要:本文从容器技术应用的角度解构了HE2E项目的代码仓库配置.镜像构建.及docker-compose的部署方式.希望通过本篇文章分享可以使更多的开发者了解容器技术和华为云. 本文分享自华为云社区& ...

随机推荐

  1. [LINQ2Dapper]最完整Dapper To Linq框架(五)---查看Linq实际执行的SQL

    此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架,只依赖于Dapper支持.net framework4.6.1及 ...

  2. php查询字符串的函数

    /* 查找一个字符串在另一个字符串的第一次出现,并返回其余部分(strstr别名) */ var_dump(strchr("hello world hello", "wo ...

  3. ASP.NET Core 1.0: 指定Default Page

    前不久写过一篇Blog<指定Static File中的文件作为Default Page>,详细参见链接. 然而,今天偶然发现了一个更加简洁的方法,直接使用Response的Redirect ...

  4. [LC] 108题 将有序数组转换为二叉搜索树 (建树)

    ①题目 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10,- ...

  5. 领扣(LeetCode)最长和谐子序列 个人题解

    和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] ...

  6. 《JAVA 程序员面试宝典(第四版)》之循环、条件、概率

        分享内容:关于集合的使用   书页号码:77页 题目:一个字符串中包含a~z中的多个字符,如有重复,如String data = "aavzcadfdsfsdhshgwasdfasd ...

  7. secureCRT安装与激活

    SecureCRT安装及激活方式 百度网盘地址: SecureCRT及激活软件的地址: 1. 安装secureCRT 百度网盘下载,点击scrt814-x64.exe,按照提示安装secureCRT, ...

  8. websocket可以做什么

    本篇介绍的是websocket,但是并不介绍它的协议格式,一般能看明白http头也能明白websocket在协议切换前的协商,能看明白IP报头也就对websocket在协议切换后通讯格式不陌生.web ...

  9. vant-ui的van-area使用

    由于官方例子中并没有太多详情,因此记录之,方便以后使用. 1.配置 :area-list="areaList",以初始化全部省市区的数据,其中area.js文件在官方可以下载,放于 ...

  10. 纯css实现tab导航

    仿照这个 实现了一个纯css的导航功能 html <div class="main"> <div id="contain1">列表一内容 ...