【摘要】 本文介绍使用华为云弹性负载均衡配置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. apache+php+mysql搭建php环境

    1.首先准备解压包:zend-loader-php5.6-windows-x86_update1(nts版).php-5.6.37-nts-Win32-VC11-x86.mysql-5.5.19-wi ...

  2. <深圳千锋学习>day01

    2019.11.11     深圳千锋H5前端学习笔记

  3. 『题解』洛谷P3384 【模板】树链剖分

    Problem Portal Portal1: Luogu Description 如题,已知一棵包含\(N\)个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作\(1\): ...

  4. js+jquery 笔记

    本人也不知道该怎么写javascript笔记,本人就拿一个例子来写,这个例子就从算法所说起吧! 例如: 一个整数的数组 [122,393,664,935,1386,1675,1928,2199,247 ...

  5. Java操作数栈

    - 与局部变量表一样,均以字长为单位的数组.不过局部变量表用的是索引,操作数栈是弹栈/压栈来访问.操作数栈可理解为java虚拟机栈中的一个用于计算的临时数据存储区.- 存储的数据与局部变量表一致含in ...

  6. C#/.Net开发入门篇(1)——开发工具安装

    众所周知,工欲善其事必先利其器,要想砍柴快一定得有把好刀,那么要想代码写的有效率.质量高一个趁手的编辑器是必不可少的,写代码不可能就用系统自带的文本编辑器(如果是大佬当我没说),这里我推荐各位使用微软 ...

  7. php微信卡券logo上传方法

    php微信卡券logo上传方法 <pre> $xiangmupath = $this->getxiangmupath(); $logo = $xiangmupath . '/imag ...

  8. 关于Eratosthenes筛子算法筛选小于n的素数的理解

    今天在学习Java核心技术第九章集合框架中的BitSet时,遇到了这个算法.Eratosthenes筛子算法时一个查找素数的方法,这并不是查找素数的最好方法,但是测试编译程序性能的一种流行的基准. 一 ...

  9. Java设计模式(20):命令模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 智能电脑的品牌越来越多,由此诞生了一款电脑控制的APP,万能遥控器,用户在使用遥控器的时候,可以切换为自家电视的品 ...

  10. Arduino 基于 ESP8266 配置WIFI模块

    Arduino 基于 ESP8266 配置WIFI模块 使用ESP8266作为服务器,使用浏览器访问该服务器,从而控制LED灯 选择 [文件]->[示例]->[ESP8266WIFI]-& ...