流量高峰前的预警与应急

前提 本案前提服务器为 Ubuntu Server 16.04 LTS,Web Server 为 Nginx,Application Server 为 PHP7.0-FPM。 概述 本案用于概述当前服务器架构方案以及业务预警、应急方案; 本案不考虑云 ECS、RDS、REDIS挂掉的问题; 本案仅适合无资源池的部署方案...

浅谈前端加载优化

0x01 前言 要了解前端优化,要从一个经典问题入手:从输入网址按下回车到显示页面,中间经历了什么。 0x02 从输入网址按下回车到显示页面,中间经历了什么 1、DNS 解析 验证本地 hosts,返回 IP 地址,不存在则进行第二步; 查询本地 DNS 服务器,返回 IP...

PHP 中的数组处理函数

在学习和开发过程中,整理出来一些比较有意思的数组处理函数。 1、array_column() 用于返回数组中某一列。 实现截图: 运行效果:   2、array_filter(),使用callback函数过滤数组 使用形式如 array_filter($array, 'callbackFunctionName'),将删...

PHP 代码执行出错了该怎么办?

我们在开发过程中,常常会遇到一些问题,一个函数体内出现了问题,如何追踪到代码呢? 当然,使用 PHP 自带的错误报告通常能解决大部分问题,那么如何开启 PHP 的调试报告呢? 在 php.ini 中找到 display_errors = Off 和 error_reporting = E_ALL,将 dis...

项目开发中,MySQL要注意的问题

在 MYSQL 5.6以后,MyISAM 与 InnoDB 的修改和查询的速度差距已经不大了,然而在新版本的 MySQL 中,我们也不推荐使用 MyISAM,更常用的是 InnoDB 和 TokuDB。因此本文内容仅针对老版本 MySQL 而言。 MyISAM 在 MyISAM 中,每个表单独保存为三个文件,因而...

PHP 常用设计模式

其实设计模式是通用的,不只是限定于 PHP 语言,但是这里使用 PHP 来举例。 工厂模式 使用工厂方法来生成对象,避免了new Class()这种方式,其好处在于如果__construct()的参数变化的话,只需要修改工厂方法而不需要到每个调用的地方去修改。   单例...

PHP 常用但不常见的函数

1、array_splice 要删除数组中的 2 号元素,如果使用unset($a[1]),造成的后果将是: 可以看到,此处数组 2 号元素是丢失的,而如果使用array_splice($a, 1, 1),其结果是: 可以看到,完美的删除了 2 号元素。   2、pcntl_fork() 这是开启 PHP “多...

分布式集群的无状态化

HTTP 众所周知,HTTP 是无状态的,何谓无状态呢,指的是 HTTP 本质上是由一个请求和一个响应组成,客户端发起一个请求,服务端提供一个响应。在服务端来看,所有发起的请求除了 URL 有所不同之外,其余的应该是无区别的,因而视为无状态。 COOKIE 然而,当...

没有SSL情况下,如何临时解决流量劫持?

如果 CDN 服务器被入侵,导致静态文件在服务器上被篡改,发布机上的 HTTPS 也无能为力。本文是在没有 SSL 的基础上,浅谈以下利用 SRI 和 CSP 防止劫持,但这个方法治标不治本,真正要想避开流量劫持,最好的方案还是使用 HTTPS。 在没有 HTTPS 的情况下,...

对比关系型数据库与非关系型数据库

NoSQL是一种理念,用于指代非关系型的、分布式的、一般不保证遵循ACID的数据存储系统。 SQL与NoSQL的区别:    关系型数据库的最大特点就是事务一致性,这个特性小可以用于积分的消耗,大可以用于银行的转账。且关系型数据库可以增加一级memcached来进...

Top