Rancher下配置均衡负载,ssl

今天把网站转到rancher上了,做了均衡负载。按照原来的思路做了nfs来放置证书和web内容,然后一个均衡负载服务转发http和https请求。事实证明想的太简单,一直报的400 badrequest,报错内容是http的请求了https。最后在github上找到解决方法。

1、在rancher的基础架构->证书内添加好域名证书。

2、在web服务端的nginx中还是按照原来的80转发到443,然后监听443,把ssl相关配置取消掉。(报错就是在这,均衡负载控制ssl,所以此处不需要ssl相关配置)。

3、添加均衡负载服务,转发http的80和https433,然后在ssl中选择我们第一步添加的证书。

然后就可以访问我们的网站 了,但是我发现我开始访问很卡(10秒左右才能反应),不知道什么原因,先观察下。

慢的初步原因找到了,是因为另一个问题引起的,先说下另一个问题。

rancher 创建mysql 8.0 应用的时候,如果挂载data目录初始化查看日志会出现mbind: Operation not permitted 后非常慢的现象,大概需要1个小时才能完成,然后导致机器最后卡死(不知道是不是我机器太差的原因,1核2g),如果直接在docker环境run的话 不会出现这个问题。

最后换了个版本5.7的稍微要好一点 能在10分钟内初始化完成。这个原因解决后发现访问速度快了很多,基本在1,2秒能反应,但是离最开始原生的速度还差了很多,后续继续查看原因。

 

除了慢的问题,后面添加了另一个主机,两台主机,发现一个均衡负载和域名的问题。

最开始域名只指向A主机的,然后所有的服务都是在A主机上,均衡负载转化80和433端口也是A主机的ip,所以没有任何问题。

后面添加了一个B主机,然后发现均衡负载运行在b主机上,这个时候无论我访问域名还是B主机ip都无法访问网站,访问A主机IP也无法访问网站。

一开始想在服务上加调度规则,只让运行在A主机上,没有加成功就放弃这个解决方法。最后就在域名管理上指向了A,B主机,然后服务规则上勾选主机均运行该服务即可。后续深入查看还有没更好解决方法。