腾讯云clb实现https进行转发,七层反代

四层负载均衡和七层负载均衡有什么区别?

四层均衡能力,是基于 IP + 端口的负载均衡 ,七层是基于应用层信息(如 HTTP 头部、URL 等)的负载均衡。

四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。
例如,四层的负载均衡,就是通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行 NAT 处理,转发至后台服务器,并记录下这个 TCP 或者 UDP 的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。

七层的负载均衡,就是在四层的基础上,再考虑应用层的特征。
例如,同一个 Web 服务器的负载均衡,除了根据 VIP 和80端口辨别是否需要处理的流量,还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。
七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

七层负载均衡要根据真正的应用层内容选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,以及负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立 TCP 连接。

实现效果:

使用腾讯云clb配置七层负载 实现用户访问web,请求自动跳转到https页面,反向代理

云服务器怎么发邮件 云服务器转发_nginx

实验需要的环境:

2台cvm

1个clb

1个备案过的域名

申请ssl证书

步骤1.0:
cvm搭建web服务,这里使用的是nginx,直接拿yum安装即可

[root@01 ~]# yum -y install nginx
[root@02 ~]# yum -y install nginx

1.1启动服务,设置开机自启

[root@01 ~]# systemctl start nginx
[root@01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

[root@02 ~]# systemctl start nginx
[root@02 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

1.2为了方便区别,这边将默认的网址改为‘1111111111’ ‘22222222222222’
[root@01 ~]# echo ‘1111111111111’> /usr/share/nginx/html/index.html

[root@01 ~]#  echo '1111111111111'> /usr/share/nginx/html/index.html 
[root@02 ~]#  echo '2222222222222'> /usr/share/nginx/html/index.html

云服务器怎么发邮件 云服务器转发_nginx_02


云服务器怎么发邮件 云服务器转发_负载均衡_03

=====================================================================================

1.3创建clb实例

云服务器怎么发邮件 云服务器转发_监听器_04

这里购买lb实例配置时,地域,可用区,所属网络为同一vpc。 最好跟购买的cvm为同一个可用区,为了避免出现一些未知的问题

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_05

1.4这里创建完成后,就可以在控制台显示出来了。VIP则为lb的ip

云服务器怎么发邮件 云服务器转发_负载均衡_06

1.5配置HTTPS监听器
HTTPS 监听器简介

您可以在负载均衡实例上添加一个 HTTPS 监听器转发来自客户端的 HTTPS 协议请求。HTTPS 协议适用于需要加密传输的 HTTP 应用。
前提条件

您需要 创建负载均衡实例。
配置 HTTPS 监听器
步骤1:打开监听器管理页面

>     登录 负载均衡控制台。
   >     在左侧导航栏,选择【实例管理】。
   >     在 CLB 实例列表页单击需配置的实例 ID,进入实例详情页。
   >     单击【监听器管理】标签页,您也可以在列表页的操作栏中单击【配置监听器】。

云服务器怎么发邮件 云服务器转发_nginx_07


“监听器管理”页面如下图所示。

云服务器怎么发邮件 云服务器转发_nginx_08


步骤2:配置监听器

在 HTTP/HTTPS 监听器模块下,单击【新建】,在弹出框中配置 HTTPS 监听器。

云服务器怎么发邮件 云服务器转发_负载均衡_09


2. 创建转发规则

注意:添加的服务器证书需要存在,如果没有 可以先在证书控制台去申请,申请步骤请继续往下看

云服务器怎么发邮件 云服务器转发_nginx_10

**

注意:这里的ssl证书,是使用的腾讯云免费申请的证书,在申请证书的时候,

云服务器怎么发邮件 云服务器转发_监听器_11

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_12


**

注意:填写的证书域名要和创建clb监听器的域名一致!

**

云服务器怎么发邮件 云服务器转发_监听器_13

采用dns验证方式,下一步

云服务器怎么发邮件 云服务器转发_负载均衡_14

跳到这一步,就快完成了,证书这边会提供1、域名 2、主机记录 3、记录类型 4、记录值

需要您在您的域名解析控制台。dnspod上添加如上对应的TXT记录,等待解析成功即可使用了。配置完成大约10分钟生效

云服务器怎么发邮件 云服务器转发_nginx_15

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_16

**

2. 创建转发规则

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_17


3. 健康检查

云服务器怎么发邮件 云服务器转发_负载均衡_18


4. 会话保持

云服务器怎么发邮件 云服务器转发_nginx_19


步骤3:绑定后端云服务器

  1. 在“监听器管理”页面,单击已创建完毕的监听器,如上述 HTTPS:443 监听器,单击左侧的【+】展开域名和 URL 路径,选中具体的
    URL 路径,即可在监听器右侧查看该路径上已绑定的后端服务。
  2. 云服务器怎么发邮件 云服务器转发_nginx_20

  3. 单击【绑定】,在弹出框中选择需绑定的后端服务器,并配置服务端口和权重。
    添加端口功能:在右侧“已选择”云服务器框内,单击【添加端口】,即可添加同一个云服务器的多个端口,如同时添加 CVM 的 80、81、82 三个端口。
    默认端口功能:先填写“默认端口”,再选择云服务器,每台云服务器的端口均为默认端口。
  4. 云服务器怎么发邮件 云服务器转发_nginx_21

步骤4:安全组(可选)
您可以配置负载均衡的安全组来进行公网流量的隔离,详情请参见 配置负载均衡安全组。

步骤5:修改/删除监听器(可选)

如果您需要修改或删除已创建的监听器,请在“监听器管理”页面,单击已创建完毕的监听器/域名/URL 路径,选择【修改】或【删除】完成操作。

云服务器怎么发邮件 云服务器转发_监听器_22


1.6这里绑定完后端服务后,健康检查为‘健康’ 则成功

云服务器怎么发邮件 云服务器转发_监听器_23


1.7验证:这里在浏览器直接访问域名,无法打开,因为咱们配置的是https转发,所以需要添加前缀为https://xxx.xxx.xxx

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_24

成功,刷新,分别为111和2222对应的两台后端nginx服务,如果业务有需求,想吧请求打在一台配置较高机器,可以添加权重

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_25

验证如下:

云服务器怎么发邮件 云服务器转发_nginx_26


云服务器怎么发邮件 云服务器转发_负载均衡_27

1.8这里发现一个问题,如果不加https前缀,则无法调整到页面,这里选择重定向配置。原理就是,
原前端协议/端口nginx机器,80重定向到HTTPS:443端口上,这样后端服务开的80端口 实际上请求就打到https:443端口上了。用户访问侧是无感知到后端服务具体是什么端口,只能看到跳转为https

云服务器怎么发邮件 云服务器转发_云服务器怎么发邮件_28


配置方法:勾选【自动重定向配置】下一步即可

云服务器怎么发邮件 云服务器转发_负载均衡_29

此操作,无须在后端nginx上修改配置文件,后端服务器只需吧网站目录对应好就行了,非常的方便

最后验证结果则为,不管输入域名 还是https://域名 都是跳转为https。实现clb。https反代效果