【摘要】 本文介绍使用华为云弹性负载均衡配置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. 使用Typescript重构axios(三)——实现基础功能:处理get请求url参数

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  2. JDK下载安装配置教程(详细)

    JDK下载安装配置教程(详细) 版权声明:本文为原创文章,转载请附上原文出处链接和本声明.https://www.cnblogs.com/mxxbc/p/11844885.html 因为最近需要在Wi ...

  3. 吐血推荐珍藏的Visual Studio Code插件

    作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了.好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难.眼看这段经历要告一段 ...

  4. 识别手写数字增强版100% - pytorch从入门到入道(一)

    手写数字识别,神经网络领域的“hello world”例子,通过pytorch一步步构建,通过训练与调整,达到“100%”准确率 1.快速开始 1.1 定义神经网络类,继承torch.nn.Modul ...

  5. 在linux上使用ssh登录服务器,Linux权限

    本文是作者原创,版权归作者所有.若要转载,请注明出处 ssh为Secure Shell(安全外壳协议)的缩写. 很多ftp.pop和telnet在本质上都是不安全的. 我们使用的Xshell6就是基于 ...

  6. win7/win10系列的office安装与激活

    Windows系列电脑安装office傻瓜式教程 一.    下载与安装 下载 (1).所需工具:迅雷 下载链接:http://xl9.xunlei.com/ 显示界面如下,点击“立即下载”即可,然后 ...

  7. Genymotion模拟器安装搜狗输入法

    Genymotion模拟器默认没有中文输入法,如果在一些调试中涉及到需要输入中文则必须需要安装中文输入法. 这里以搜狗输入法为例. 这里需要注意一下几点就行: 百度下载一个搜狗输入法,需要特别注意的是 ...

  8. go中的数据结构通道-channel

    1. channel的使用 很多文章介绍channel的时候都和并发揉在一起,这里我想把它当做一种数据结构来单独介绍它的实现原理. channel,通道.golang中用于数据传递的一种数据结构.是g ...

  9. 破解加密Excel

    打开要解除保护的EXCEL ALT+F11----插入模块----复制粘贴代码----F5============================代码========================= ...

  10. 使用Jquery获取指定属性的值

    使用Jquery获取指定属性的值 <input type="hidden" value="{$time}" name="time" i ...