LAMMP架构的企业级应用

LAMMP是什么
LAMMP的实现
LAMMP适用的生产环境

一、LAMMP是什么

LAMMP,是几个英文单词首字母的缩写。

L是Linux的缩写,Linux操作系统,Linux以稳定、安全、且开源著称的操作系统,适用于做  服务器

A是Apache的缩写,Apache是一款提供Web服务器的开源软件,Apache是一个极具稳定安全、高度模块化、支持模块动态扩展的Web服务器,是搭建Web服务器的首选之一,据统计全球有50%左右的Web服务器是用Apache搭建的。 这个网站,是对全球web服务器的排名。

M是MySQL的缩写,Mysql是数据库管理系统,数据库管理软件,也是开源软件。

M是Memcached的缩写,Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。

Memcached是一款开发工具,它既不是一个代码加速器,也不是数据库中间件。其设计哲学思想主要反映在如下方面:

1. 简单key/value存储:服务器不关心数据本身的意义及结构,只要是可序列化数据即可。存储项由“键、过期时间、可选的标志及数据”四个部分组成;

2. 功能的实现一半依赖于客户端,一半基于服务器端:客户负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期;

3. 各服务器间彼此之间不互相通信:不在服务器间进行数据同步;服务器宕机,存储的数据立即丢失

4. O(1)的执行效率

5. 清理超期数据:默认情况下,Memcached是一个LRU缓存,同时,它按事先预订的时长清理超期数据;但事实上,memcached不会删除任何已缓存数据,只是在其过期之后不再为客户所见;而且,memcached也不会真正按期限清理缓存,而仅是当get命令到达时检查其时长;

P是PHP的缩写,是一种面向对象的编程语言。

相关阅读:

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12)

RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind

LAMP源码环境搭建WEB服务器Linux+Apache+MySQL+PHP

LAMMP的架构拓扑图:

LAMMP架构的企业级应用

 

此LAMMP架构是分别搭建在不同的服务器上面,在生产环境中,更是应该如此,一台服务器提供多种应用,服务器会很消耗资源,提供服务的性能也会降低。

此架构中各服务器的工作
      Apache在此架构中,响应回复用户html的请求
      FastCGI是把php程序执行的结果响应给Apache
      Memcached是根据用户请求的动态网页文件中是否需要Memcached服务器缓存数据,Memcache是把数据存储在内存中的,速度可想而知了。
      Mysql是响应用户是否需写入查询数据
用户的请求资源到获取资源的过程
    1、当用户只需要请求web服务器的html页面时,Apache直接响应请求,所经过的过程为1--->8
    2、当用户需请求一个web服务器的动态的页面时,Apache把用户请求的php执行程序发送给FastCGI服务器执行,FastCGI把执行的结果返回给Apache服务器,服务器把程序生成的的静态页面响应给客户端。所经过的过程1--->2--->7--->8
    3、当用户需要请求的web服务器资源中需要数据时,Apache把用户请求的php执行  程序给FastCGI执行,执行过程中需要对数据进行操作时且Memcached中没有缓存时,FastCGI去请求Mysql服务器的资源,mysql服务器把数据响应给FastCGI,如果此数据需要缓存则FastCGI把数据缓存到Memcached服务器上,然后把数据响应给Apache,Apache生成静态的页面响应给客户端。所经过的过程1--->2--->5--->6[--->3]--->7--->8(如果需要缓存则会经过3过程)
    4、当用户需要请求的web服务器资源中需要数据时,Apache把用户请求的php执行程序给 FastCGI执行,执行过程中需要对数据进行操作时Memcached中有缓存时,Memcached直接把 数据响应给FastCGI,然后把数据响应给Apache,Apache生成静态的页面响应给客户端。所经过的过程1--->2--->3--->4--->7--->8

二、LAMMP的实现
Apache服务器所需的软件包
    apr-1.4.6.tar.bz2

    apr-util-1.5.2.tar.bz2 

    httpd-2.4.6.tar.bz2(提供Web服务器的软件包)

    由于httpd-2.4的包linux系统中的apr版本不够新,所以需要下载更新的apr相关的包,直接下载源码包进行安装。
FastCGI服务器所需的软件包
          libmcrypt 

        libmcypt-devel

          xcache-3.0.3.tar.bz2 (缓存php执行好的代码,加速opcode)

          php-5.4.19.tar.bz2  (提供php-fpm(FastCGI)服务的软件包)

          memcache-2.2.7.tgz  (FastCGI连接Memcache服务器的软件包)

Memcached服务器所需的软件包
        libevent-2.0.21-stable.tar.gz

        memcached-1.4.15.tar.gz (安装Memcached服务器的软件包)

Mysql服务器所需的软件包

mysql-5.5.33-linux2.6-x86_64.tar.gz

    安装的是mysql的通用二进制程序包,此软件包解压之后就可以使用


思路:
1、每个服务器的安装操作都是独立,但是最后需要建立关系

2、解决WEB怎么连接PHP-FPM(FastCGI)
3、解决PHP-FPM(FastCGI)怎么连接Memcached
4、解决PHP-FPM(FastCGI)怎么连接Mysql

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5b56dd784238041c3539058f675c727c.html