Nginx+PHP服务器运行原理初探

版权声明:只要点赞,这篇文章就是你的。 https://blog.csdn.net/weixin_36691991/article/details/88816099

Nginx服务器起到的作用

服务器分为两类:

  • 前端服务器。负责HTTP请求的解析与转发,或者处理静态请求。轻量级,并发量高,常常用作反向代理、负载均衡等。说白了,就是负责请求发到哪里,或者取现成的文件之类的。
  • 应用服务器。负责调用某一种语言的解释器,或某种语言写的、已经编译好的程序,接收HTTP请求中的各个参数,按照开发者的意图做出动作,并生成结果返回给调用方。

Nginx一般用作前端服务器,解析HTTP请求,并把请求传递到下一个地方(下一台服务器,或者是应用服务器程序,或者是……)。

FastCGI

CGI,全称Common Gateway Interface,是应用服务器语言相关的处理程序之间的接口。 
处理程序实现这个接口,应用服务器调用这个接口,传入HTTP中的各参数(方法,URL,表单……),实现动态请求。不过这么做也有个缺点,每次收到请求时,应用服务器都要新建一个进程,调用处理程序,使用完之后就结束这个进程。进程的建立与释放都比较消耗资源,因此这么做的效率并不高。 
FastCGI是对CGI的改进,它随着Nginx服务一同启动并驻留内存,当请求到达时,处理之,处理完之后并不结束这个进程,而是继续等待下一次连接。

PHP-fpm与PHP-cgi

PHP-cgi是PHP语言的解释器。按照最初的模式的话,每次请求到达,都要开一个新的进程启动PHP-cgi,重新载入配置、数据结构,初始化运行环境。更新PHP配置之后,需要重启PHP-cgi,配置才能生效。 
而PHP-fpm是PHP一个实现了FastCGI的管理器,常驻内存,负责管理各PHP-cgi进程,可以提升运行效率,并实现平滑重启。

如何在机器上配置PHP-fpm

nginx.conf文件中,php相关的location块中配置fastcgi_pass,指向php-fpm监听的端口。 
php-fpm的配置文件中,监听某个端口。貌似配置文件中默认都是127.0.0.1:9000

猜你喜欢

转载自blog.csdn.net/weixin_36691991/article/details/88816099
今日推荐