LNMP环境

《老男孩Linux运维》笔记


LNMP已经逐渐取代LAMP成为国内大中型互联网公司网站的主流组合环境!

LNMP,即Linux + Nginx + MySQL|MongoDB + PHP/Python。

当LNMP组合工作时,首先是用户通过浏览器输入域名请求Nginx Web服务。

如果请求时静态资源,则由Nginx解析返回给用户;

如果是动态请求(.php或.py),那么Nginx就会把它通过FastCGI(Uwsgi)接口发送给PHP引擎服务(FastCGI进程php-fpm)进行解析;

如果这个动态请求尧都区数据库数据,那么PHP就会继续向后请求MySQL(MongoDB)数据库,以读取需要的数据,并最终通过Nginx服务把获取的数据返回给用户,这就是LNMP环境的基本请求顺序流程。

LNMP组合调用关系逻辑图


MySQL

MySQL是一款广受用户欢迎的开源关系型数据库,由瑞典MySQL AB公司开发与维护。2006年被SUN公司收购,2008年SUN公司又被传统数据库领域老大甲骨文(Oracle)收购。因此,MySQL数据库软件目前属于Oracle公司,但仍开源。

Oracle数据库服务于传统型大中型企业,而MySQL用于抢占互联网领域的数据库份额。

MySQL是一种关系型数据库管理软件,关系型数据库的特点是将数据保存在不同的二维表中,并且讲这些表放入不同的数据库中,而不是把所有数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度、灵活性和可管理性也得到了很大提高。

访问及管理MySQL数据库的最常用的标准化语言为SQL结构化查询语言。

MySQL优点:

性能卓越、服务稳定,很少出现异常宕机;

开放源码且无版权制约,自主性强、使用成本低;

历史悠久、社区及用户非常活跃,遇到问题可以很快获得帮助;

软件体积小、安装简单、易于维护;

支持多种操作系统、提供多种API接口、支持多种开发语言;

MySQL安装:

MySQL安装方式

重视MySQL安装过程中的报错输出;

useradd -s /sbin/nologin -g mysql -M mysql

获取MySQL软件包:https://dev.mysql.com/downloads/

MySQL配置文件: /etc/my.cnf

记得给MySQL的用户设置密码:

mysqladmin -u root password 'xxxxxxx'

清理无用的MySQL用户和库:

select user,host from mysql.user;

drop user "username"@"host";


FastCGI

CGI的全称是“通用网关接口”(Common Gateway Interface),为HTTP服务器与其他机器上的程序服务通信交流的一种工具,CGI程序必须运行在网络服务器上。

传统的CGI接口方式的主要缺点是性能较差,因为每次HTTP服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回给HTTP服务器。这在处理并发访问时几乎是不可用的,安全性也很差,因此就诞生了FastCGI。

FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(在Linux下,FastCGI接口即为socket),主要优点是把动态语言和HTTP服务器分离开。

FastCGI接口采用C/S架构,它可以将HTTP服务器和脚本解析服务器分开,同时还能在脚本服务器上启动一个或多个脚本来解析守护进程。当HTTP服务器遇到动态程序时,可以将其直接交给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求,或者将动态脚本服务器的结果返回给客户端,提高了整个应用系统的性能。

FastCGI特点:

HTTP服务器和动态脚本语言间通信的接口或工具;

可把动态语言解析和HTTP服务器分离开;

Nginx、Apache、Lighttpd,以及多数动态语言都支持FastCGI;

FastCGI接口方式采用C/S结构,分为客户端(HTTP服务器)和服务器端(动态语言解析服务器);

PHP语言服务器端可以启动多个FastCGI的守护进程(如php-fpm);

HTTP服务器通过FastCGI客户端(如Nginx fastcgi_pass)和动态语言FastCGI服务器端通信(如php-fpm);

Nginx不支持对外部动态程序的直接调用或解析,所有的外部程序必须通过FastCGI接口来调用。FastCGI接口在Linux下socket,为了调用CGI程序,还需要一个FastCGI的wrapper(可理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定的socket上。当nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或外部程序处理脚本来读取返回的数据,接着wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx,最后,nginx将返回的数据发送给客户端。

Nginx结合PHP FastCGI

FastCGI的主要优点是把动态语言和HTTP服务器分离开来,是Nginx专门处理静态请求及向后转发动态请求,而PHP/PHP-FPM服务器则专门解析PHP动态请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • 系统环境 所需软件官方下载地址: 一、 安装开发包环境: 二、 关闭iptables和Selinux(生产...
    莫名其妙的一生阅读 1,279评论 0 4
  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,170评论 5 124
  • 前言 主要还是对于整个服务器如何配置做一个整理。(本人菜鸡。。如有不对,请指出。。勿喷)也可以去本人的博客看看。 ...
    HideOnBush阅读 1,057评论 -1 9
  • 首先简单介绍一下linux的两种安装方法,yum以及编译安装。yum是一个软件包管理器,使用yum指令安装,系统会...
    正在修炼的西瓜君阅读 1,097评论 0 2
  • 使用单一进程容器,即一个容器只运行一种服务,而不是把所有服务放在一个容器的设计,让PHP项目需要的Nginx、PH...
    dodos阅读 21,241评论 22 42