LNMP
实现FastCGI
CGI:最早的Web服务器只能简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html文件,但是后期随着网站功能增多网站开发也越来越复杂,以至于出现动态技术,比如像php、asp(.NET)语言开发的网站,但是nginx/apache服务器并不能直接运行 php、asp这样的文件,apache实现的方式是打补丁,但是nginx缺通过与第三方基于协议约束实现,即通过某种特定协议将客户端请求转发给第三方服务处理,第三方服务器会新建新的进程处理用户的请求,处理完成后返回数据给Nginx并回收进程,最后nginx在返回给客户端,那这个约定就是(common gateway interface,简称CGI),CGI(协议) 是web服务器和外部应用程序(cgi程序)之间的接口标准,是cgi程序和web服务器之间传递信息的方式
FastCGI:CGI协议虽然解决了语言解析器和seb server之间通讯的问题,但是它的效率很低,因为web server每收到一个请求都会创建一个CGI进程,PHP解析器都会解析php.ini文件,初始化环境,请求结束的时候再关闭进程,对于每一个创建的CGI进程都会执行这些操作,所以效率很低,FastCGI是用来提高CGI性能的,FastCGI每次处理完请求之后不会关闭掉进程,而是保留这个进程,使这个进程可以处理多个请求。这样的话每个请求都不用再重新创建一个进程了,大大提升了处理效率。(可以设置达到多少次请求重新创建一个进程,防止处理请求时残留在内存中)
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器,是FASTCGI主进程)是一个实现了Fastcgi的程序,并且提供进程管理的功能。进程包括master进程和worker进程。master进程只有一个,负责监听端口,接受来自webserver的请求。worker进程一般会有多个,每个进程中会嵌入一个PHP解析器,进行PHP代码的处理
FastCGI配置指令
Nginx基于模块ngx\_http\_fastcgi\_module实现通过fastcgi协议将指定的客户端请求转发至php-fpm处理
FastCGI示例–Nginx与php-fpm在同一服务器
php安装可以通过yum或者编译安装,使用yum安装相对比较简单
php环境准备
Nginx安装完成之后默认生成了与fastcgi的相关配置文件,一般保存在nginx的安装路径的conf目录当中,比 如/apps/nginx/conf/fastcgi.conf、/apps/nginx/conf/fastcgi\_params
常见的错误
File not found. #路径不对
502: php-fpm处理超时、服务停止运行等原因导致的无法连接或请求超时
Nginx与php不在同一个服务器
这里php使用yum方式安装新的php,先测试php5.6的,后面在测试编译安装php高版本的
LNMP部署
隐藏nginx版本号
隐藏PHP版本
自定义server信息
小结
1、搭建lnmp环境基于不能同版本的mysql和php
2、php参数优化,socket和IP方式,性能socket方式更好,但IP更稳定,推荐IP方式
3、加固安全,隐藏后端php版本号,隐藏nginx版本号
4、可自定义http头部服务名信息
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...
keepalived