1.基于多域名调度的SLB七层负载均衡配置
在运维架构中,大多数情况下都是一个Nginx配置着多个网站的负载均衡,每个网站都有单独的域名,也就是我们常常听到的基于域名转发的Nginx负载均衡配置,在Nginx中实现多域名的不同调用非常简单,只需要声明多个负载均衡资源池并配置多个server即可实现。
在阿里云的SLB负载均衡中实现多域名转发也比较简单,首先我们需要创建一个80端口的负载均衡,关联上一组虚拟服务器组,这一个虚拟服务器组可以是任意一个域名的后端服务器组,创建完成后,配置监听实例的转发策略,在转发策略中声明不同域名的不同转发规则即可实现多域名的调度。
案例需求:
- 有三个WEB应用程序:kodcloud、edu、blog
- 域名分别是kodcloud.jiangxl.com.cn、edu.jiangxl.com.cn、blog.jiangxl.com.cn
- kodcloud程序使用的是80端口,edu程序使用8080端口、blog程序使用9080端口
- 三套WEB程序在每台ECS中都进行了部署,通过SLB配置七层负载均衡,实现多域名的转发
- 通过HTTPS协议进行访问
大致实现步骤:
在做此案例时可以先将原来创建的监听实例删除,另外想要做多域名的HTTPS协议负载均衡,在生产环境中一定是购买多个SLB,或者是使用泛域名的证书,我们目前没有泛域名证书也没有多个SLB,只有一台SLB的情况下,我们想要通过HTTPS实现多域名的转调度就需要在测试这个域名访问时,通过切换证书的方式进行验证,否则会提示网站连接不安全,也可以不做HTTPS协议的域名转发,只做HTTP环境的也可
。如果只配置HTTP协议实现多域名调用就需要创建SSL证书也不需要创建HTTPS协议类型的监听实例了,只需要配置一个HTTP协议的监听实例并配置转发策略即可。
- 首先为三个域名增加DNS解析记录、SSL证书
- 创建一个HTTPS协议443端口的监听实例,关联任意程序的虚拟服务器组。
- 创建一个HTTP协议80端口的监听实例,并配置强转HTTPS。
- 在HTTPS监听实例中配置转发策略,分别为每一个域名配置相应的转发策略。
2.增加域名的DNS解析记录
kodcloud程序域名的解析记录在之前已经添加过了。
1)添加edu域名的解析记录
在控制台中找到云解析—>找到我们的域名—>点击添加记录—>记录类型为A记录—>主机记录中填写主机名—>记录值中填写SLB负载均衡的公网IP地址。
2)添加blog域名的解析记录
在控制台中找到云解析—>找到我们的域名—>点击添加记录—>记录类型为A记录—>主机记录中填写主机名—>记录值中填写SLB负载均衡的公网IP地址。
3)查看添加的域名解析记录
kodcloud在前面已经增加过了,edu和blog的解析也已经添加完成。
3.为3个域名申请免费的SSL证书
kodcloud程序的SSL证书之前已经申请过了。
1)在SSL证书控制台的免费证书这里申请即可。
2)三个域名的证书准备完成。
3)在SLB的证书管理中创建证书。
4.创建HTTPS协议的负载均衡实例
1)添加监听
2)配置HTTPS协议的监听实例
协议类型选择HTTPS—>监听端口为443—>监听名称为https_cluster—>点击高级配置—>调度算法为轮询—>开启会话保持—>cookie处理方式为植入cookie。
3)选择SSL证书
我们的三个应用程序的域名都是jiangxl.com.cn,但是我们使用的是免费的SSL证书,每个域名都有单独的SSL证书,如果想要通过https请求程序,就需要为SLB绑定证书,我们这里选择任意一个SSL证书都可以,在具体测试时进行切换,如果我们的证书是花钱购买的,则可以针对jiangxl.com.cn创建证书,我们在使用https访问时就不需要切换证书了。
4)添加虚拟服务器组
我们针对多域名做转发策略,每个程序对应的虚拟服务器组是不同的,我们在后面会为每个程序添加虚拟服务器组,这里选择任意一个服务器组即可,我们就选择kodcloud程序的服务器组。
5)健康检查及配置审核
健康检查保持默认即可,配置审核的没问题就可以点击提交完成创建了。
5.配置HTTP强转HTTPS
再添加一个监听—>负载均衡协议选择HTTP—>监听端口为80—>监听名称为http_cluster—>点击高级配置—>开启监听转发—>选择目的监听为HTTPS协议。
配置完成后点击下一步提交即可。
监听实例配置完成。
6.创建三个应用程序的虚拟服务器组
kodcloud程序的虚拟服务器组在之前已经添加过了。
1)添加edu程序的虚拟服务器组
点击虚拟服务器组—>创建虚拟服务器组—>填写虚拟服务器组的名称为edu-loadblance—>点击添加—>勾选edu程序的ECS服务器—>下一步填写提供服务的端口号—>点击添加即可。
2)添加blog程序的虚拟服务器组
点击虚拟服务器组—>创建虚拟服务器组—>填写虚拟服务器组的名称为blog-loadblance—>点击添加—>勾选blog程序的ECS服务器—>下一步填写提供服务的端口号—>点击添加即可。
3)所有程序的虚拟服务器组添加完毕
7.配置多域名转发策略
1)找到https_cluster的监听实例—>点击配置字转发策略。
2)以kodcloud程序的域名为例展示添加转发策略的方式,其余域名的配置方式一样。
填写域名—>URL为/—>选择kodcloud程序的虚拟服务器组—>填写备注信息—>最后点击添加转发策略。
3)将其他程序域名的转发规则进行添加。
8.配置ECS中Nginx完成应用的访问
kodcloud通过80端口访问,edu通过8080端口访问,blog通过9080端口访问,程序所有的ECS服务器都需要配置。
1.分布准备edu和blog程序的页面内容
# mkdir /data/app/{edu,blog} -p
# echo -e "<body bgcolor="#F0F8FF">\n<h1 align="center">欢迎访问程序</h1>\n<h2 align="center">edu hello</h1>" > /data/app/edu/index.html
# echo -e "<body bgcolor="#F0F8FF">\n<h1 align="center">欢迎访问blog程序</h1>\n<h2 align="center">blog hello</h1>" > /data/app/blog/index.html
2.配置Nginx发布edu和blog程序
# edu程序
server {
listen 8080;
server_name edu.jiangxl.com.cn;
charset utf-8;
location / {
root /data/app/edu/;
index index.html;
}
}
#blog程序
server {
listen 9080;
server_name blog.jiangxl.com.cn;
charset utf-8;
location / {
root /data/app/blog/;
index index.html;
}
}
3.重启nginx
# nginx -s reload
4.测试edu和blog程序是否可用
[root@iZ2zeh91n0eaq0lk4xvtrmZ ~]# curl 127.0.0.1:8080/
<body bgcolor=#F0F8FF>
<h1 align=center>欢迎访问程序</h1>
<h2 align=center>edu hello</h1>
[root@iZ2zeh91n0eaq0lk4xvtrmZ ~]# curl 127.0.0.1:9080
<body bgcolor=#F0F8FF>
<h1 align=center>欢迎访问blog程序</h1>
<h2 align=center>blog hello</h1>
9.测试SLB多域名转发的SLB负载均衡配置
9.1.为SLB切换域名证书
一个监听实例只能配置一个SSL证书,而我们有3个域名,域名证书都是独立的,因此再测试某个域名前,首先需要切换证书,实际工作中肯定不能这么做,要么为每个域名分配单独的SLB,要么直接为二级域名申请证书文件。
1)点击监听实例中的管理证书
2)选择证书
在下拉列表中选择其他域名的证书文件即可。
9.2.测试各个应用系统的域名访问
全部通过https进行访问,访问每一个域名之前首先要切换证书。
1)kodcloud云盘系统的访问
2)edu程序的访问
3)blog程序的访问
转载:https://blog.csdn.net/weixin_44953658/article/details/127841836