类别:PHP教程 / 日期:2019-12-04 / 浏览:164 / 评论:0

过去当运转一个大的web运用时刻意味着须要运转一个大型的web服务器。由于你的运用吸收了大批的用户,你将不得不在你的服务器里增添更多的内存和处置惩罚器。本日,“大型服务器”形式已过去,取而代之的是大批的小服务器,运用林林总总的负载平衡手艺。

“更多小服务器”的上风凌驾过去的“大型服务器”形式体现在两个方面:

  1. 假如服务器宕机,那末负载平衡体系将住手请求到宕机的服务器,转而分发负载到其他一般运转的服务器上。

  2. 扩大你的服务器越发轻易。你要做的仅仅是到场新的服务器到负载平衡体系。不须要中断你的运用运转。

  所以,把握住这个时机。固然,价值就是这请求你的运用开发时增添一点庞杂度。这就是本文要掩盖的内容。

  这时候你大概对本身说:“然则我如何晓得我正在运用负载平衡呢?”。最老实的回覆是,假如你正在问这个问题,那末答案是你多数没有在运用负载平衡体系而且你的体系不须要斟酌这个问题。大多数状况,当运用生长足够大的范围时,负载平衡就须要明确提出和设置了。但是,我也偶然瞥见虚拟主机公司为客户的运用做这个负载平衡,或许像下面形貌的那样要本身来做。

  注重,我一向提“web运用”而不是website,这是想辨别“web运用”是那些庞杂的站点每每触及服务器端编程和数据库,而不是website那样只显示简朴的静态内容。

  1. PHP文件

  第一个问题是,假如你有大批的小型服务器,你如何把你的php文件上传到一切的服务器上?有以下的要领供你参考:

  ◆离别上传一切的文件到每个服务器 , 这类要领带来的问题是:想像一下你有20个服务器,那末上传过程当中这将很轻易致使毛病,而且更新时极有大概致使差别服务器上有差别版本的文件。

  ◆运用 ‘rsync ‘ (或相似的软件) . 如许的东西能同步当地目次和多个长途主机目次上的文件。

  ◆运用版本控制软件(如subversion ) . 这是我最喜欢的要领。用它能够很好地保护我得代码,当宣布我的运用时,能够在每个服务器上运转svn update敕令同步。这类要领也使切换服务器得代码到过去的某一个版本越发轻易。

  ◆运用一个文件服务器(你大概发明NFS 异常适合做这件事变). 这类体式格局是运用一个文件服务器来寄存你的web运用. 固然,假如你的文件服务器宕机,那末多一切你的站点将不能运用。这时候,你就须要消费更多的开支来恢复它。

  挑选哪一种体式格局依赖于你的需求和你控制的妙技。假如你运用版本控制体系,那末你大概得计整齐个要领假如同时实行一个更新敕令更新一切服务器上的代码。但是,假如运用文件服务器,你就要完成一些失利恢复机制,防备万一服务器宕机致使请求失利。

  2. 文件上传

  当只需一台服务器时,文件上传不是一个问题。然则当我们有多台服务器时,那末上传的文件应当如何寄存呢?上传文件的问题和跨服务器php文件存储是相似的。下面是几种大概的计划:

  ◆把文件存储到数据库中。大多数数据许可存储二进制数据。当你请求文件下载时,接见数据把二进制数据和响应的文件名和范例输出给用户。在运用这类计划前应当斟酌数据库如何存储你的文件。该要领的问题在于假如数据库服务器宕机将使文件不可用。

  ◆在一个文件服务器上存储上传的文件 . 与前面的引见一样,你要装置一个文件服务器让一切web服务器同享,把一切上传的文件上传到这里,上传后一切的web服务器就都能够运用它。然则,假如文件服务器宕机,那末大概发生图像文件下载中断。

  ◆设想你本身的上传机制传输文件到服务器到每个服务器 . 这个要领没有单个文件服务器或许数据库计划的缺点,然则将增添你代码的庞杂度。比方,假如上传到多个服务器过程当中,服务器宕机,你要如何处置惩罚?

  用数据库存储上传文件然则设想一个文件缓存机制是一个不错的计划。当服务器吸收一个文件下载请求时,起首搜检缓存体系中是不是有该文件,假如发明那末从缓存体系下载,否则从数据库读取并把它缓存到文件体系中。

  3. 会话(Sessions)

  假如你熟习php的session 处置惩罚,你将大概晓得默许状况下,它存储session数据在服务器的临时文件里。而且,这个文件仅仅在你请求处置惩罚的谁人服务器上,然则接下来的请求大概被别的一个服务器处置惩罚,这将在另一个服务器上生成新的session。这致使session频仍地不被辨认,如登录用户老是请求从新登录。

  我引荐的计划是,要么从新php内建的session处置惩罚机制存储session数据到数据库,或许完成你本身的机制保证发送一个用户的请求到统一台服务器。

  4. 设置(Configuration)

  只管这个话题不是和php迥殊相干,我觉得照样有必要说起。当运转集群服务器时,用某种要领坚持服务器之间的设置文件同步是一个好主意。假如设置文件不一致,大概致使一些异常新鲜的断断续续的行动致使很难排查这些问题。

  我引荐运用版本控制体系零丁治理他们。如许你能够为差别的项目装置存储差别的php设置文件,也能够坚持一切服务器设置文件同步。

  5. 日记(Logging)

  像设置问题一样,logging不是仅仅和php相干。然则关于坚持服务器康健运转它依然是异常重要的。没有准确的logging体系,你如何晓得假如PHP代码入手下手发生毛病(在体系正式运转时,你老是封闭display_errors 设置,不是吗?)

  有几种要领你能够完成logging:

  1. 在每个服务器上纪录日记。 这是最简朴的要领。每个机械仅仅纪录一个文件。优点是简朴,大概只需很少的设置。然则,跟着服务器数目的增加,监控每台服务器上的日记文件将变得异常难题。

2. 纪录日记到一个同享 这类要领每个服务器依然有这个日记文件,然则他们经由过程同享机制被存储在一个中心文件服务器上,这将使监控日记变得更简朴。该计划的问题在于,假如文件服务器不可用将致使一个简朴的日记不能写入问题终究致使全部运用崩溃。

  3. 纪录日记到logging服务器 你能够运用一个logging软件,如syslog 来把一切的日记写到一个中心服务器。只管这个要领请求更多的设置,然则他也供应了最硬朗的计划。

以上就是用PHP做负载平衡指南的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

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

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章