【华为云网络技术分享】【第三弹】HTTP重定向HTTPS配置指南

举报
樱桃小丸子 发表于 2018/01/09 17:48:17 2018/01/09
【摘要】 本文介绍使用华为云弹性负载均衡配置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.              创建负载均衡

3w.png

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

4r.png

4r6.png

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

image.png

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

image.png

image.png

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

image.png


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

image.png

后端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;

}

 



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。