网站负载均衡解决方案


本文摘自PHP中文网,作者藏色散人,侵删。

Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰当的分配方式,对于保护处于后端的Web服务器来说,非常重要。

12c74c1fbeb17a5ab7bb0cabb57b5ad.png

反向代理负载均衡

反向代理服务的核心工作主要是转发HTTP请求,扮演了浏览器端和后台Web服务器中转的角色。因为它工作在HTTP层(应用层),也就是网络七层结构中的第七层,因此也被称为“七层负载均衡”。可以做反向代理的软件很多,比较常见的一种是Nginx。

5a2456aa99e72996c71e5853f454596.png

Nginx是一种非常灵活的反向代理软件,可以自由定制化转发策略,分配服务器流量的权重等。反向代理中,常见的一个问题,就是Web服务器存储的session数据,因为一般负载均衡的策略都是随机分配请求的。同一个登录用户的请求,无法保证一定分配到相同的Web机器上,会导致无法找到session的问题。

解决方案主要有两种:

配置反向代理的转发规则,让同一个用户的请求一定落到同一台机器上(通过分析cookie),复杂的转发规则将会消耗更多的CPU,也增加了代理服务器的负担。

将session这类的信息,专门用某个独立服务来存储,例如redis/memchache,这个方案是比较推荐的。

反向代理服务,也是可以开启缓存的,如果开启了,会增加反向代理的负担,需要谨慎使用。这种负载均衡策略实现和部署非常简单,而且性能表现也比较好。但是,它有“单点故障”的问题,如果挂了,会带来很多的麻烦。而且,到了后期Web服务器继续增加,它本身可能成为系统的瓶颈。

配置文件样本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#user nobody; worker_processes 1; #pid logs/nginx.pid; events {

    worker_connections 1024; } http {

    include mime.types;

    default_type application/octet-stream;

    sendfile on; 

    keepalive_timeout 65;

    upstream www.hcoder.net {

        server 192.168.1.188:80 weight=5;

        server 192.168.1.158:80;

    }

    server {

    listen 80;

    server_name www.hcoder.net;

    location / {

       proxy_pass http://www.hcoder.net;

       proxy_set_header Host $host;

       proxy_set_header X-Real-IP $remote_addr;

       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   } }

以上就是网站负载均衡解决方案的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

网站负载均衡解决方案

网站负载均衡解决方案

更多相关阅读请进入《网站负载均衡解决方案》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...