配置Amazon ELB访问限制
因为ELB在Security Group(安全组)的外面,在EC2的安全组限制HTTP(80端口)访问也是无效的。通过ELB任何客户端都可轻松访问EC2。
但是也无法限制ELB访问EC2,因为ELB会对EC2的进行HealthCheck(健康确认),当ELB无法访问指定页面的时候,就会判断该EC2出现异常。
因此需对经过ELB的访问也进行限制时,必须在Web服务器(Apache或者Nginx)上配置访问限制。
比如,在Apache配置访问限制时,客户端的IP将全部是ELB的IP,无法进行判断。这时,应该使用X-Forwarded-For进行限制。
范例
只允许IP地址为192.168.170.1的客户端,访问该网站。
SetEnvIf X-Forwarded-For "192\.168\.170\.1" allow_ip Order deny,allow Deny from all Allow from env=allow_ip
拒绝IP地址为192.168.170.1和192.168.170.2的客户端,访问该网站。
SetEnvIf X-Forwarded-For "192\.168\.170\.1" deny_ip01 SetEnvIf X-Forwarded-For "192\.168\.170\.2" deny_ip02 Order allow,deny Allow from all Deny from env=allow_ip01 Deny from env=allow_ip02
X-Forwarded-For是ELB接受客户端的请求后,分配到EC2时把真正的客户端的IP地址添加到数据包的尾部。
Apache的Web服务器的话,通过安装和配置mod_extract_forwarded,可以把客户端IP改为X-Forwarded-For。 配置方法还没有研究过,有机会用的话,再研究。
# yum install mod_extract_forwarded
简介负载均衡器分配方式
Amazon Web Services的Elastic Load Balancing是一个简单易用的负载均衡器,ELB可以把客户端的访问以Round Robin方式均等的分配到ELB下的EC2。
高性能的负载均衡器,一般有Round Robin,Ratio,Least Connections,Fastest,Observed,Predictive,Dynamic Ratio。 因为ELB只提供Round Robin功能所以说是简单的,但是通过万维网只几步就可以拥有负载均衡器因此说它是易用的。