负载均衡实现https与http的混合访问
意义
互联网巨头雅虎官方对外发布消息,承认在2014年的一次黑客袭击中,至少5亿用户的数据信息遭窃。此次事件让我们再次意识到网站安全的重要性,网站加密防护的必要性。
因为http协议是不加密的,所以用户使用的时候,并不安全。https是加密的,能够保护用户的信息。但是现在有一个问题:用户习惯直接输入域名,会直接使用HTTP协议。那么我们在云端需要做一个转换。
本实验使用负载均衡配置监听,利用Nginx实现HTTP请求向HTTPS请求的转化,从而完成HTTP和HTTPS的混合访问。
HTTP请求转化为HTTPS请求架构图
补充:HTTPS和HTTP
HTTP 由于是明文传输,所以安全上存在以下三个风险:
- 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
- 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
- 冒充风险,比如冒充淘宝网站,用户钱容易没。
HTTPS是增加了SSL/TLS
实验步奏
配置监听

添加 负载均衡 的 HTTPS 协议的监听。
在 基本配置 页面,配置如下信息:
- 前端协议[端口]:选择 HTTPS ,并填写端口号为 443 ;

添加组


添加 负载均衡 的 HTTP 协议的监听
- 前端协议[端口]:选择 HTTP ,并填写端口号为 80 ;

后端服务器组,选择默认服务器组
- 后端协议[端口]:默认使用 HTTP ,填写端口号为 88 ;
- 其余配置信息保持默认,完成如上配置后,点击 下一步 。

说明:本实验中使用 88 端口进行判定和转发的,在真实的工作环境中,用户请根据实际情况设置端口信息。
验证监听
验证 HTTP 协议监听
在浏览器中新建一个页面,输入 实验资源 提供的 负载均衡 的 IP地址 。此时,页面提示 502 错误。证明 HTTP 协议监听开启,但是无法正常访问网站。(注意不是ECS的地址,而是负载均衡的地址)
验证 HTTPS 协议监听
1)在浏览器中,新建页面,并输入 https://xxx.xxx.xxx.xxx (其中 xxx.xxx.xxx.xxx 为 实验资源 提供的 负载均衡 的 IP地址 )。
注意:必须输入 https:// ,否则会出现访问错误。
HTTP请求转化为HTTPS请求
通过重定向的方式将来自 HTTP 请求转发到 HTTPS。直接修改nginx的配置。
Nginx配置
进入ECS实例1
修改 Nginx 配置文件:将所有 88 端口请求,都转发到负载均衡的 HTTPS 协议的 IP 访问地址。
1)输入如下命令,进入 Nginx 配置文件的编辑页面。
1 | vim /etc/nginx/nginx.conf |
2)键盘输入 i ,进入 编辑 模式。
3)清空 85 行到 94 行的注释 # ,如下图所示:
4)修改 rewrite 的参数信息,将 xxx.xxx.xxx.xxx 替换为 实验资源 提供的 负载均衡 的 IP地址 。
5)保存并且退出。
6)重启 Nginx 服务器:
1 | service nginx restart |
ECS实例2同样操作。
证书购买和上传

因为浏览器会有提示,要解决这个问题,必须购买证书并非上传,请自行百度或者查看原文链接。
感谢:小林-图解网络