前言:

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。

为此,我们需要使用负载均衡、读写分离的方式,提升网站的系统性能和访问速度。

硬件设备配置:使用5台服务器,3台做负载,1台做数据备份,1台做应急处理服务器(内存:8G,硬盘容量:40G,CPU:4核)。一,Laravel读写分离配置(Laravel自行下载安装):

Laravel 6 读写分离配置比较简单,只需修改 config/database.php完成对数据库的配置就完成了读写分离,下面以 MySQL 数据库为例,内容如下:

'mysql' => ['read' => ['host' => ['192.168.72.100','196.168.72.101',

            '196.168.72.102',],],'write' => ['host' => ['196.168.72.99',],],'sticky'    => true,'driver'    => 'mysql','database'  => 'database','username'  => 'root','password'  => '','charset'   => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix'    => '',

],

设置完毕之后,Laravel6 默认将select 的语句让read 指定的数据库执行,insert/update/delete 则交给 write 指定的数据库,达到读写分离的作用。二,nginx负载均衡配置(Nginx自行下载安装):

1、内置负载策略

  • 轮循(默认):Nginx根据请求次数,将每个请求均匀分配到每台服务器上。
  • 最少连接:将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。
  • IP Hash:绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。

2、详细配置方法

upstream server1 {
       server 192.168.72.100:80 weight=3 max_fails=3 fail_timeout=15 max_conns=1000;
       server 192.168.72.101:80 weight=2 max_fails=3 fail_timeout=15;
       server 192.168.72.102:80 weight=1 max_fails=3 fail_timeout=15 ;
       server 192.168.72.103:80 backup;
       server 192.168.72.104:80 down;

}
server {
       listen       80;
       server_name  www.xxx.com;#charset koi8-r;
       access_log  logs/host.access.log  main;
       location / {
           proxy_pass   http://server1;
           index  index.html index.htm index.php;}

}

通过以上配置,便可以实现,在访问www.xxx.com这个网站时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为server1的地址,读取分发策略,配置权重为3,所以nginx会将大部分请求发送给100服务器上,较少部分给102服务器来实现有条件的负载均衡。

backup 参数说明:

1)、down:表示单前的server暂时不参与负载

2)、weight:默认为1,weight越大,负载的权重就越大。

3)、max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4)、fail_timeout:max_fails 次失败后,暂停的时间。

5)、backup:其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

6)、max_conns:最大链接数,超过以后就不会发生请求过来。

通过以上配置完成了Laravel中的读写分离和Nginx的负载均衡,重点说明完整项目还需要配置MySQL的主从配置或者主主复制,实现读写分离后才能达到数据的一致性。

《 励志分享 》

生活不可能一帆风顺,岁月不可能一尘不染,人生不可能一举成功。但我们相信,一切终将过去,一定会春暖花开。

1、Laravel5.6 + 阿里云OSS 完成图文分离架构2、必须了解的PHP内置函数,开发效率提升N倍3、Laravel快速使用和配置Redis缓存,并使用Redis数据库4、PHP实现微信拼手气拆红包算

看完本文有收获?点赞、分享是最大的支持

php laravel 默认cookie加密 读取怎么办_Laravel+Nginx轻松实现读写分离、负载均衡,网站并发能力提升N倍...相关推荐

  1. SpringSession的源码解析(从Cookie中读取Sessionid,根据sessionid查询信息全流程分析)

    前言 上一篇我们介绍了SpringSession中Session的保存过程,今天我们接着来看看Session的读取过程.相对保存过程,读取过程相对比较简单. 本文想从源码的角度,详细介绍一下Sessi ...

  2. cookie无法读取bdstoken_Web自动化测试:对cookie的操作

    Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).在自动化测试过程中,我们如果想要进行免登陆操作的话 ...

  3. 跨域Cookie的读取

    cookie的几个属性 1 httpOnly:true 表示禁止客户端读cookie,即只能在服务端读取它 2 SameSite:用来限制第三方 Cookie,从而减少安全风险. Strict最为严格 ...

  4. mvc存储Cookie和读取Cookie方法

    mvc存储Cookie和读取Cookie方法: //存储 HttpCookie cookie = new HttpCookie("User"); System.Text.Encod ...

  5. php实现cookie加密解密

    1.加密解密类 1 class Mcrypt 2 { 3 /** 4 * 解密 5 * 6 * @param string $encryptedText 已加密字符串 7 * @param strin ...

  6. Linux负载均衡粘滞会话:IP_HASH Session(nosql mysql 文件共享系统 ) Cookie客户端加密识别用户

    1.IP_HASH 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题. upstream bakend {ip_hash;server 192. ...

  7. 头条的_signature这个如何_今日头条详细页面的cookie加密

    嗨咯大家好,帅气要迷人的我,要来了. 言归正传,今天我们来讲的是今日头条的cookie加密.也就是所谓的__ac_signature字段,今日头条的新闻详细页面是要带这个字段和__ac_nonce这个 ...

  8. 2019年末逆向复习系列之Boss直聘Cookie加密字段__zp_stoken__逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是公众号<云爬虫技术研究笔记>的<2019 ...

  9. webview中cookie的读取与保存

    应该做到更好 Cookie 的读取这里就简单写段代码了,它很容易懂,你应该将它放在 webViewDidFinishLoad 开始后执行 NSArray *nCookies = [[NSHTTPCoo ...

最新文章

  1. R构建二次回归模型( Quadratic Regression)
  2. cmd中运行python文件,并带参数
  3. 《JAVA编程那点事儿》读书笔记(二)——类和对象
  4. gtk移植到嵌入式_物联网时代的盛行,应届毕业生是学嵌入式好呢,还是安卓或ios呢?...
  5. 关于Notes更改internet密码所需的缓存时间
  6. CCIE-LAB-第四篇-OSPFv2+SHA384+BFD
  7. 如何用python计算levenshteindistance_Levenshtein计算相似度距离
  8. 随想一·杨柳岸晓风残月
  9. ubuntu ssh服务器与客户端的文件互传
  10. ACM数论【乘法逆元】
  11. 在Objective-C中分类对象和方法
  12. java中static修饰函数_详解java中static关键词的作用
  13. 浅谈Java程序员的黄金五年,如何实现快速进阶
  14. python 余弦值,Python求向量的余弦值操作代码示例
  15. 【一起学Rust】Rust介绍与开发环境搭建
  16. 昆虫繁殖科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。 每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。 假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(
  17. python笔记:太困了,读取并显示按行业分类的股票数据提提神
  18. 我们通常所说的利率是指_我们通常所说的利率是指()。 A.市场利率B.名义利率C.实际利率D.固定利率...
  19. linuxmint/ubuntu修改主机名hostnam
  20. 3.17 inappropriateintimacy (狎昵关系)

热门文章

  1. 让知识来指引你:序列推荐场景中以知识为导向的强化学习模型
  2. ACL 2020 开源论文 | 基于Span Prediction的共指消解模型
  3. swin_transformer用于做图像分类(已跑通)
  4. win10无线投屏_日臻薄技 | 手机如何投屏到电脑
  5. SpringMVC-设置编码过滤器
  6. JAVA——基于HttpClient的获取帆软FineReport报表爬虫DEMO
  7. 《计算机组成原理》实验报告——TEC-2实验系统——运算器实验
  8. Spring MVC——POST请求application/x-www-form-urlencoded方式参数嵌套POJO解决方案
  9. Topforces Strikes Back
  10. Superhero Transformation