0%

Nginx配置主要分成四部分:main、server、upstream 和 location,每部分包含若干个指令。
main(全局设置)

该部分设置的指令将影响其它所有部分的设置;

server(主机设置)

该部分的指令主要用于指定虚拟主机域名、IP和端口;

upstream(上游服务器设置)

该部分的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;

location(URL匹配特定位置后的设置)

该部分用于匹配网页位置(比如,根目录“/”,“/images”,等等)。

Nginx本身是模块化设计。全局的配置区段负责全局的各个方面,对于不同的协议可以单独划分成一个部分。我们可以通过在这些单独的协议配置中(http或mail)指定server来定义每一个请求应该被如何处理,以便请求被路由到特定的IP地址或端口上。在http区段中,使用location来匹配URI请求,这些location又可以嵌套使用或者按照一定顺序使用,以确保请求被路由到正确的文件系统区域或者其他地方。

他们之间的关系式: server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

阅读全文 »

虽然memcached是一个高性能的缓存服务器,但是单台服务器对于目前大型的web应用来说还是满足不了需求的。那么就需要布置多台的memcached服务器进行分布式部署。那么一个数据应该存储到哪一台服务器就需要一个分布算法来确定。

常见的分布方案有两种,

  • 普通Hash分布
  • 一致性Hash分布
阅读全文 »

首先,需要明确以下这两个概念

  • 异常(exception)

    PHP中的异常,是程序运行中不符合预期的情况及与正常流程不同的状况。
    是属于逻辑和业务流程的一种中断,而不是语法错误。

  • 错误(error)

    PHP中的错误则属于自身的问题,是一种非法的语法或者环境问题导致的、让编译器无法通过检查甚至无法运行的情况。

阅读全文 »

Memcached,是高性能的分布式内存缓存服务器,主要功能就是通过缓存数据库的查询,减少对数据库的访问次数,来提高动态web应用的速度和可扩展性。

memcached 是以守护程序方法运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前一致的客户端api包括 Perl / PHP / Python / Java / C# / C 等等。客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了, 每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在平时的 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。

注意,这些对象并不是持久的, 服务停止之后, 里边的数据就会丢失。

Memcached应用模型

阅读全文 »

PHP-FPM内置了一个运行状态页,开启后便可查看PHP-FPM的详细运行状态,可以给我们在优化PHP-FPM时带来帮助。

阅读全文 »

redis是一个key-value存储系统。
和Memcached类似,它支持存储的value类型相对更多,
包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。
redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。
它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

  • Memcache

    内存缓存服务,缓存数据保存在内存中,一旦断电重启,数据将丢失

  • mangoDB

    开源免费的NOSQL 数据库,提供数据持久化服务,以文档的形式提供数据组织方式,而不是表

  • Redis

    开源免费的 NOSQL数据库,提供数据持久化服务,即能实现内存缓存服务,也能提供数据结构服务取代MySQL 自建索引用来弥补关系型数据的不足

阅读全文 »

Redis共有5种数据类型

  • string(字符串)
  • hash(哈希表)
  • list(双向队列)
  • set(集合)
  • zset(有序集合)
阅读全文 »