网站负载均衡解决方案

发布时间 - 2019-04-13 00:00:00    点击率:

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

反向代理负载均衡

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

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

解决方案主要有两种:

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

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

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

配置文件样本:

#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; 
   } }


# nginx  # Cookie  # Session  # redis  # http  # 负载均衡  # 七层  # 单点  # 都是  # 代理服务  # 是一种  # 地说  # 将会  # 给我们  # 一台 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python文本处理实践_日志清洗解析【指导】  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  如何破解联通资金短缺导致的基站建设难题?  Swift中循环语句中的转移语句 break 和 continue  高防服务器租用首荐平台,企业级优惠套餐快速部署  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  简历没回改:利用AI润色让你的文字更专业  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何配置Horizon来管理队列?(安装和使用)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  详解vue.js组件化开发实践  网站制作企业,网站的banner和导航栏是指什么?  php json中文编码为null的解决办法  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  在Oracle关闭情况下如何修改spfile的参数  如何在阿里云完成域名注册与建站?  香港服务器WordPress建站指南:SEO优化与高效部署策略  LinuxShell函数封装方法_脚本复用设计思路【教程】  浅谈javascript alert和confirm的美化  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何挑选最适合建站的高性能VPS主机?  *服务器网站为何频现安全漏洞?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel Session怎么存储_Laravel Session驱动配置详解  教你用AI将一段旋律扩展成一首完整的曲子  如何用西部建站助手快速创建专业网站?  jQuery中的100个技巧汇总  桂林网站制作公司有哪些,桂林马拉松怎么报名?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何用PHP快速搭建CMS系统?  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  公司门户网站制作流程,华为官网怎么做?  网站页面设计需要考虑到这些问题  如何解决hover在ie6中的兼容性问题  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  网页制作模板网站推荐,网页设计海报之类的素材哪里好?