LNMP WEB架构处理请求过程

1.Nginx为一款高性能Web服务器,本身是不能处理PHP的,当接收到客户端浏览器发送HTTP Request请求时,Nginx服务器响应并处理web请求,静态资源CSS、图片、视频、TXT等静态文件请求,Nginx服务器可以直接处理并回应。

2.Nginx并不能直接处理PHP页面,PHP动态页面请求Nginx不能直接处理,Nginx服务器会将PHP网页脚本通过接口传输协议(网关协议)PHP-FCGI(Fast-CGI)传输给PHP-FPM(PHP进程管理程序)

3.PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器进程解析PHP脚本信息,处理PHP页面。PHP解析器进程可以启动多个,可以实现多进行并发执行。

4.PHP解释器将解析后的脚本返回到PHP-FPM,PHP-FPM再通过Fast-CGI的形式将脚本信息传送给Nginx,Nginx服务器再 通过Http Response的形式传送给浏览器,浏览器再进行解析与渲染然后进行呈现。

CGI、FAST-CGI、PHP-CGI、PHP-FPM概念总结:

  • CGI:Common gateway interface 通用网关接口;
  • FastCGI:Fast common gateway interface 快速通用网关接口;
  • PHP-FPM:PHP-Fast CGI Process Manager CGI,是FastCGII协议的实现并且带进程管理器;

PHP-FPM是PHPCGI进程管理器,可以有效控制内存和进程、可以平滑重载PHP配置。    PHP-CGI(PHP解析器进程)是解析PHP代码的程序,属于PHP程序解释器,只负责解析请求,不负责进程管理。

整合PHP和Nginx,配置文件并测试phpinfo();

1.修改/usr/local/nginx/conf/nginx.conf为以下内容[root@www /]# cat /usr/local/nginx/conf/nginx.conf|grep -E -v "#|^$"worker_processes ;

events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server {
listen ;
server_name localhost;
error_page /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /var/www/html;  #指定网站根目录
fastcgi_pass 127.0.0.1:9000;  #指定fastcgi转发端口.Nginx通过此端口与php进行交互
fastcgi_index index.php;  #指定默认索引页(首页)
fastcgi_param SCRIPT_FILENAME
/var/www/html$fastcgi_script_name;  
        #脚本文件请求的路径,这个配置的意思是在浏览器中访问的.php文件,实际读取的是
$document_root(网站根目录:/var/www/html)下的.php文件
        #也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,nginx不会去网站根目录下访问.php文件,所以返回空白
include fastcgi_params;  #调用fastcgi 的变量文件。可以nginx中配置文件里面看到(/usr/local/nginx/conf/),支持上一条参数
}

}
}

2.保存后重新载入nginx.conf

[root@localhost /]# /usr/local/nginx/sbin/./nginx -s reload

3.在/var/www/html目录下写入index.php

[root@localhost /]# echo "<?php phpindo(); ?>" > /var/www/html/index.php

4.通过浏览器访问ip/index.php

LNMP WEB架构构建的更多相关文章

  1. 四十二、LAMP与LNMP web架构深度优化实战-第一部

    1.nginx.conf配置文件基本参数优化 1.1 隐藏nginx header内版本号信息 一些特定的系统及服务漏洞一般都和特定的软件版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信 ...

  2. 四十三、LAMP与LNMP web架构深度优化实战-第二部

    1. 配置nginx gzip压缩功能    服务器对发出的内容进行压缩,带宽少了,体验好,速度快,但是服务端压,会使cpu使用高,压缩比高的进行压缩:文本.程序文件.数据文件.图片视频不要压缩,一般 ...

  3. 可扩展Web架构与分布式系统(转)

    1.1. web分布式系统的设计原则 搭建和运营一个可伸缩的web站点或者应用程序意味着什么?在原始层面上这仅仅是用户通过互联网连接到远程资源-使系统变得可伸缩的部分是将资源.或者访问的资源,分布于多 ...

  4. Web 架构师的能力(转)

    文/刘如鸿 最近和几个朋友在谈到时下流行的Web 2.0,也提到了其中最重要的角色——架构师.多方各有争执,不外乎是因为背景和视角的缘故,包括架构一词,本身就从建筑学借鉴而来,至于架构师,则可以 简单 ...

  5. 可扩展Web架构与分布式系统

    原文:可扩展Web架构与分布式系统 开放源代码已经成为一些大型网站的基本原则.而在这些网站成长的过程中,一些优秀的实践经验和规则也出现在他们的结构中.本文旨在介绍一些在大型网站结构设计的过程中需要注意 ...

  6. ASP.NET WEB API构建基于REST风格

    使用ASP.NET WEB API构建基于REST风格的服务实战系列教程[开篇] 最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http ...

  7. LNMP + Apache 架构配置

    从事前端开发已3年有余,越来越发现前端开发要学习的知识已不仅仅是html+css+js那么简单了,2017年市场上就有了大前端的概念,可以说对前端工程师的要求也越来越高了,从招聘的要求中可以看到熟悉一 ...

  8. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  9. 撩课-Web架构师养成系列(第二篇)-async

    前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...

随机推荐

  1. WPF开发之限制输入的控件---------转自CDSN

    原文地址 http://blog.csdn.net/ghosind/article/details/51627601 作者 ghosind 一,正则表达式过滤字符串 if (RegexString = ...

  2. HTTP.SYS 详解 (网络转载)

    http.sys 是一个位于Win2003和WinXP SP2中的操作系统核心组件, 能够让任何应用程序通过它提供的接口,以http协议进行信息通讯. 温馨提示:如果用户不慎删除了该驱动文件,不用担心 ...

  3. Delphi线程类 DIY(把类指针作为参数传进去,就可以执行类里面的方法啦)

    Delphi 封装了一个很强大的线程类 TThread, 我们也自己动手制作一个简单的线程类 首先Type一个类 type TwwThread = class constructor Create;  ...

  4. 配置QSslConfiguration让客户端程序跳过本地SSL验证

    大家下午好哦.今天我们在重新制作我们萌梦聊天室的时候,出现了这样的问题.那就是我们的客户端能够对qtdream.com服务器进行登录,但是不能对localhost服务器(也就是本机啦)进行登录.这究竟 ...

  5. IIS上.net注册

    如果先安装了.Net平台,后再安装IIS,那么在IIS中可能就没有出现ASP.NET版本的下拉菜单,这是我们可手动注册.Net 一般.Net版本都存放在:C:\WINDOWS\Microsoft.NE ...

  6. windows pyspider WEB显示框太小解决方法

    环境:windows7 + chrome + pyspider 解决方法: WEB预览框过小的原因在于页面元素的css属性height被替换为60px: CSS文件所在地方:C:\Users\Admi ...

  7. Linux常用实用命令

    Linux是我们开发人员必不可少的系统,也是经常接触到的.然而,Linux命令比较多,有些不常用也难记住.那么,我们如何更高效的使用Linux命令,而又不必全面地学习呢?今天就给大家分享一下我在开发过 ...

  8. 20 如何通过pycharm快速的创建一个html页面

    1.打开pycharm并且新建一个html页面,如下图所示. 2.删除html页面中默认的内容,之后在页面中输入!,之后点击tab即可完成一个html页面的框架新增.

  9. 实现h5公众号分享功能(vue项目也适用)

    在vue项目中我们先npm install weixin-js-sdk --save下载下来在main.js文件中引入 import wx from 'weixin-js-sdk';//引入 Vue. ...

  10. spring cloud 系列第2篇 —— eureka 高可用注册中心的搭建 (F版本)

    源码仓库地址:https://github.com/heibaiying/spring-samples-for-all 一.项目结构 eureka-server为服务注册中心,负责服务的管理: eur ...