企业级LNMP环境面试必备

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

(1)

LNMP的工作流程:

当LNMP工作的时候,首先是用户通过浏览器输入域名请求Nginx Web服务,如果是请求的是静态的资源,则由Nginx解析返回给用户。

如果是动态的资源,那么久通过Fast CGI接口发送给PHP引擎服务(Fast CGI进程php-fpm)进行解析。

如果这个动态的请求要读取数据库,那么PHP就会继续向后请求MySQL数据库,读取需要的数据。

最终通过Nginx服务把获取的数据返回给用户,这就是LNMP的基本流程。


(2)企业选用MySQL作为数据库的优点:

1.性能卓越,服务稳定,很少出现异常宕机。

2.开放源代码并且没有版权的限制,自主传播,使用成本低。

3.历史悠久,社区及用户非常活跃,遇到问题很快可以获取帮助。

4.软件体积小安装简单,并且易于维护,安装及维护的成本低。

5.支持多种操作系统,提供API接口。

6.品牌效应,使得企业无需考虑就直接使用。


(3)LNMP环境搭建问题:

当安装LNMP一体化环境的时候MySQL数据库要装在Nginx所在的服务器上,

如果MySQL和Nginx不在同一台机器上,那么Nginx服务器上的MySQL数据库软件只要解压移动安装目录中就行。

不需要对MySQL进行初始化配置。

在PHP5.3以上的版本中,Nginx服务器上安装了MySQL软件,只需要在编译PHP的时候指定相关参数即可。

编译参数:--with-mysql=mysqlnd

表示在编译的时候会调用内置的MySQL的库。


(4)什么是FCGI:

FastCGI是一个可伸缩的、高速的在HTTP服务器的动态脚本语言间通信的接口(在Linux下,FastCGI就是socket,这个socket可以是文件socket或IPsocket)。

FastCGI采用C/S架构,它可以将HTTP服务器和脚本服务器分开,同时还可以在脚本解析服务器上启动一个或多个服务器来解析守护进程。

当HTTP服务器遇到动态程序的时候,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一的处理静态的请求。

这会很高的提高整个应用系统的性能。


(5)FastCGI的重要特点:

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

2.可以把动态语言解析或HTTP服务器分离开。

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

4.PHP动态语言方式采用C/S结构,分为客户端(HTTP服务器)和服务器端(动态语言解析服务器)。

5.PHP动态语言服务器端可以启动多个FastCGI的守护进程。

6.HTTP服务器通过FastCGI客户端和动态语言FastCGI服务器端通信。


(6)Nginx FCGI运行原理:

Nginx不支持对外部动态程序的直接调用或者解析。所有的外部程序(包括PHP)必须通过FastCGI接口来调用。

FastCGI接口在Linux下是一个socket,为了调用CGI程序,还需要一个FastCGI的wrapper(可以理解为用户启动另一个程序的程序),这个wrapper绑定在某个固定的socket上。

当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接受到请求,然后派生出一个新的线程,这个线程调用解释器或外部的程序处理脚本来读取返回的数据。

然后wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx,最后Nginx将返回的数据发送给客户端。

FastCGI的主要优点就是把动态的语言和HTTP服务器分离开来,使Nginx专门处理静态的请求,动态的请求直接使用PHP/PHP-FPM服务器专门处理。



 本文转自 棋帅小七 51CTO博客,原文链接:http://blog.51cto.com/xvjunjie/1962285

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
202 0
|
4月前
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
|
7月前
|
应用服务中间件 PHP nginx
基于Anolis OS 3快速搭建LNMP环境制作KodBox
本教程介绍如何搭建LNMP环境,其中本实验的LNMP分别代表Anolis OS 3、Nginx、Mariadb和PHP。
135 0
|
7月前
|
关系型数据库 MySQL 应用服务中间件
快速搭建LNMP环境
Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。
287 2
|
3月前
|
API PHP 数据库
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
33 0
|
8月前
|
关系型数据库 MySQL 应用服务中间件
centos7 配置LNMP环境
centos7 配置LNMP环境
100 0
|
5月前
|
NoSQL Java 关系型数据库
大环境逐渐好转,Java 岗先爆了!大厂后端Java面试宝典合集需要吗
上半年大家听到“就业大环境很差”、“工作不好找”之类的太多了。如今大环境已经逐渐好转,虽然不需要太过焦虑,但是也要持续的提升自己。
|
5月前
|
NoSQL 应用服务中间件 Redis
面试官:分布式环境下,如何实现session共享
随着互联网公司的项目在微服务和分布式的环境下进行的搭建,导致一个项目可能分别部署在几个甚至很多的服务器集群下,此时就会出现一个问题:
|
6月前
|
关系型数据库 MySQL Linux
Linux环境下LNMP架构实战案例
Linux环境下LNMP架构实战案例
|
7月前
|
弹性计算 关系型数据库 MySQL
基于ROS快速部署LNMP环境(CentOS 7)
本教程提供在阿里云云服务器ECS上基于CentOS 7.9操作系统搭建LNMP环境的指引。LNMP是应用广泛的网站服务系统,由四种免费的开源软件Linux、Nginx、MySQL和PHP组成。搭建好LNMP环境后,您可以在该ECS实例上搭建网站、访问网站
406 0