大家好!最近在使用SLB过程中遇到不少问题,特发此贴寻求帮助!谢谢大家!!
上周末把配置好SLB,并且把网站迁移到阿里云服务器。主要有3台服务器,其中服务器A和B为WEB服务器,都安装了Apache,并用rsync同步web数据,它们组成了SLB,两台服务器通过内网连接Mysql服务器C,网络拓扑图如下:
网站上周末访问量不大没什么问题。昨天和今天,访问量正常(每天14万IP的访问量)Apache服务器B经常出现80异常。导致负载均衡SLB健康检查状态为80:异常。此时用tail -f 命令查看apache服务器B的访问日志,就看到两个阿里云的内网ip在很慢的滚动,说明B服务器此时没有人访问。但是这个时候通过访问B服务器的IP地址,也能打开网站。
就算是SLB正常的时候,用iftop查看服务器A和服务器B的网卡流量,发现B服务器的平均值为4M左右,而A服务器的平均值才10K左右。这应该是我网站的图片放在B服务器上的原因。
但是查看apache日志的时候,发现大多数访问者都是访问A服务器,它的流量却这么低,有点不正常。
询问阿里云技术,说他们监控我的访问量都集中在服务器B上,导致B服务器压力大。另外他们让关闭了会话保持,同时把健康检查配置中的”不健康阀值“调高,我目前调为5。
可是按照他们的说法调整后,我的B服务器还是经常出现80异常,监控不断往我手机发短信。
同时我发现网站打开速度很慢,主要是加载图片的时候慢。而且直接通过访问A服务器和B服务器的IP,打开网页的速度明显的就是A要快。因为阿里云技术说我的网站访问量主要集中在B服务器上,造成SLB访问不均衡。因此,我调整了两台服务器的权重(原来两台服务器都是100),把A服务器调整为50,把B服务器的权重调整为1。调整后查看网卡流量还是很不均衡。把这个问题继续反映给
技术,得到的答复是,因为我的图片是放在B服务器上,所有的用户访问网站,都会转发到B服务器上,所以会造成A服务器很空闲,B服务器压力大。所以加载图片的速度会很慢。
请问:我这样的网络拓扑是不是不合理??我是否应该把图片从B服务器中分离出去,单独加一台服务器用作图片服务器??15万流量IP的网站(很快会突破20万、甚至30万),是不是用nginx比用apache要好很多,如果换成nginx,需要配置的地方多吗???
希望大家能给点意见,非常感谢!!!
最佳回答:
你这个访问量一点都不多,我帮朋友做的一个DZ论坛,每天大概50W,用了4台。 1台单独MYSQL(现换成RDS了,他懒的优化),3台跑php 图片 RSYNC同步,没有任何问题。
他不是用的apache,用的nginx php环境。 SLB只做个转发,你这个还是要从程序和apache的配置上,先找一下原因。
不考虑带宽的情况下,才15万IP的论坛,不用太好的性能,就可以跑起来的。
官方帮助文档地址:阿里云帮助中心
更多参考: 阿里云官方(新用户需官网注册查看)
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。