问题:当一个服务的用户很多时,应该会有不在服务区域的用户访问服务会慢,尤其是国外用户 访问国内服务的时候,慢的效果会非常明显,这就是这片文章要解决的问题
方法:
1:将提供服务的域名做dns智能负载均衡,将不同区域或线路的用户解析到相应区域的服务器上.可参考cloudxns
2:将其他区域的代理服务通过nginx代理到真实的服务上.nginx配置大致如下:
http { upstream server_list { server 192.168.1.2:80; } server { listen 80; server_name xxx.xxxx.xxx; location / { proxy_pass http://server_list; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_ignore_client_abort on; proxy_connect_timeout 900; proxy_send_timeout 900; proxy_read_timeout 900; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
这样通过简单的dns智能负载均衡做了一个跨区域的分布式服务