关于阿里云SLB(负载均衡)配置HTTPS证书一些记录

背景

因为业务背景问题,目前应用后端的接口和前端服务是放置在不同的服务器上,而前端页面现在说需要加上https,但是我们的前端页面目前请求应用后端的接口的时候使用的还是http,所以导致了,请求http的接口时候出现了异常!

如图示:

image.png

解决的办法就是,我们的也给需要给我们的应用接口加上对应的https支持!

之前已经给对应的接口的域名买好了对应的证书!

问题描述:

因为忘了,我们的应用接口的域名是指向了阿里云SLB上的服务器,所以一开始的时候是在后端进行配置相关的SSL,可是配置来配置还是无法生效!

请求的时候会说超时:


image.png
image.png

首先后端的集群的应用服务器NGINX的配置是:

server {
    listen       80; #监听80端口,可以改成其他端口
    charset      utf-8; 
    server_name  xxxxx.xxxx.xxx; # 当前服务的域名,可以有多个,用空格隔开
        
    location /favicon.ico {  
        log_not_found off;
        access_log off;
    } 
    
    #对aspx后缀的进行负载均衡请求设置
    location / {
        #请求转向自定义的的负载均衡服务器列表
        proxy_pass                 http://xxxxx.x.x.x._api;
        proxy_set_header           Host $host; 
        proxy_set_header           X-Real-IP $remote_addr; 
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header           X-Forwarded-Proto $scheme; 
        proxy_connect_timeout      600; #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout         600; #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout         600; #连接成功后,后端服务器响应时间(代理接收超时)
    }

    access_log off;
}



server {
    listen      443;
    charset     utf-8;
    server_name xxxxx.xxxx.xxx;
    keepalive_timeout 5;
    ssl on;
    ssl_certificate sslkey/xxxxx.xxxx.xxx.cn_bundle.crt;
    ssl_certificate_key sslkey/xxxxx.xxxx.xxxcn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
    ssl_prefer_server_ciphers  on;
        
    location /favicon.ico {  
        log_not_found off;
        access_log off;
    } 
    
    #对aspx后缀的进行负载均衡请求设置
    location / {
        #请求转向自定义的的负载均衡服务器列表
        proxy_pass                 http://xxxxx.xxxx.xxx_api;
        proxy_set_header           Host $host; 
        proxy_set_header           X-Real-IP $remote_addr; 
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header           X-Forwarded-Proto $scheme; 
        proxy_connect_timeout      12; #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout         12; #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout         12; #连接成功后,后端服务器响应时间(代理接收超时)
    }

    access_log off;
}

后知后觉才记得,域名的指向的是负载服务器的IP,我们需要在负载层服务器那里进行配置。

于是乎打开了阿里云的负载均衡,查看一下对应的一些配置信息,

image.png

所以尝试了添加对应的新的监听处理!

添加基本配置:


image.png

配置对应的监控检查:


image.png

然后再配置对应的转发策略:

image.png

结果:

第I一次添加的时候,我开启了对应 <使用虚拟服务组>
导致下面的问题的提示(理论上其实应该是没影响的,暂且没继续尝试):

image.png

并且访问对应的后端接口返回的是502:

image.png

因为对于http还是没有什么问题,所以排除了后端问题的可能性!

后来删除继续重新添加:
但是还是出现异常信息,


image.png

后来查阅各种资料,在阿里云的官方文档上有对应的排错步骤:

参考资料信息:
https://help.aliyun.com/knowledge_detail/55201.html?spm=a2c4g.11186623.6.714.K0jKZY

https://help.aliyun.com/knowledge_detail/55207.html?spm=a2c4g.11186623.6.721.FWDfvM

排查步骤

检查500/502/504错误截图,判断是负载均衡问题,高防/安全网络配置问题,还是后端ECS配置问题。

如果有高防/安全网络,请确认高防或者安全网络的七层转发配置正确。

请确认是所有客户端都有问题,还仅仅是部分客户端有问题。如果仅仅是部分客户端问题,排查是否该客户端被云盾阻挡,或者是否是负载均衡域名或者IP被ISP运营商拦截。

检查负载均衡状态,是否有后端ECS健康检查失败的情况,如果有健康检查失败,解决健康检查失败问题。

在客户端用hosts文件将负载均衡的服务地址绑定到后端服务器的IP地址上,确认是否是后端问题。如果5XX错误间断发生,很可能是后端某一台ECS服务器的配置问题。

尝试将七层负载均衡切换为四层负载均,查看问题是否会复现。

检查后端ECS服务器是否存在CPU、内存、磁盘或网络等性能瓶颈。

如果确认是后端服务器问题,请检查后端ECS Web服务器日志是否有相关错误,Web服务是否正常运行,确认Web访问逻辑是否有问题,卸载服务器上杀毒软件重启测试。

检查后端ECS Linux操作系统的TCP内核参数是否配置正确。

PS:
检查负载均衡状态,是否有后端ECS健康检查失败的情况,如果有健康检查失败,解决健康检查失败问题。

后来觉得应该有可能是原因是健康检查检查引起的问题异常:

,因为默认他应该是会在对应的server下的一个默认的路径去检查服务的情况,由于我没指定对应的检查URL地址,所有在转到80的时候就异常了!!

后来直接的关闭健康检查!就可以了!!

你可能感兴趣的:(关于阿里云SLB(负载均衡)配置HTTPS证书一些记录)