首页 » PHP教程 » niginxphp技巧_PHP与nginx之间运行机制及其事理的具体介绍

niginxphp技巧_PHP与nginx之间运行机制及其事理的具体介绍

访客 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

一、遍及Nginx与Php-fpm干系知识点

Nginx是什么

niginxphp技巧_PHP与nginx之间运行机制及其事理的具体介绍

Nginx (\"大众engine x\公众) 是一个高性能的HTTP和反向代理做事器,也是一个IMAP/POP3/SMTP做事器。

niginxphp技巧_PHP与nginx之间运行机制及其事理的具体介绍
(图片来自网络侵删)

Php-fpm是什么

1、cgi、fast-cgi协议

cgi的历史

早期的webserver只处理html等静态文件,但是随着技能的发展,涌现了像php等动态措辞。

webserver处理不明晰,怎么办呢?那就交给php阐明器来处理吧!

交给php阐明器处理很好,但是,php阐明器如何与webserver进行通信呢?

为理解决不同的措辞阐明器(如php、python阐明器)与webserver的通信,于是涌现了cgi协议。
只要你按照cgi协议去编写程序,就能实现措辞阐明器与webwerver的通信。
如php-cgi程序。

fast-cgi的改进

有了cgi协议,办理了php阐明器与webserver通信的问题,webserver终于可以处理动态措辞了。

但是,webserver每收到一个要求,都会去fork一个cgi进程,要求结束再kill掉这个进程。
这样有10000个要求,就须要fork、kill php-cgi进程10000次。

有没有创造很摧残浪费蹂躏资源?

于是,涌现了cgi的改良版本,fast-cgi。
fast-cgi每次处理完要求后,不会kill掉这个进程,而是保留这个进程,使这个进程可以一次处理多个要求。
这样每次就不用重新fork一个进程了,大大提高了效率。

2、php-fpm是什么

php-fpm即php-Fastcgi Process Manager.

php-fpm是 FastCGI 的实现,并供应了进程管理的功能。

进程包含 master 进程和 worker 进程两种进程。

master 进程只有一个,卖力监听端口,吸收来自 Web Server 的要求,而 worker 进程则一样平常有多个(详细数量根据实际须要配置),每个进程内部都嵌入了一个 PHP 阐明器,是 PHP 代码真正实行的地方。

二、Nginx如何与Php-fpm结合

我们知道Nginx不但有处理http要求的功能,还能做反向代理。

故Nginx通过反向代理功能将动态要求转向后端Php-fpm。

下面我们来配置一个全新的Nginx+Php-fpm

1、配置nginx.conf文件

进入nginx目录下,编辑 nginx.conf文件。

如图,在nginx.conf末了一行,添加include文件

2、添加对应的server

进入上面include的路径,添加一个server.

下面我们阐明一下配置项的含义:

server { listen 80; #监听80端口,吸收http要求

server_name www.example.com; #便是网站地址

root /usr/local/etc/nginx/www/huxintong_admin; # 准备存放代码工程的路径

#路由到网站根目录www.example.com时候的处理

location / { index index.php; #跳转到www.example.com/index.php

autoindex on;

}

#当要求网站下php文件的时候,反向代理到php-fpm

location ~ \.php$ { include /usr/local/etc/nginx/fastcgi.conf; #加载nginx的fastcgi模块

fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; #nginx fastcgi进程监听的IP地址和端口

}

}

总而言之:当我们访问www.example.com的时候,处理流程是这样的:

www.example.|

||

|.example.com/index.|

|-|

|-cgi监听127.0.0.1:|

|.example.com/index.php要求到达127.0.0.1:9000

|

|

等待处理。


下面我们启用php的php-fpm来处理这个要求

打开php-fpm.conf文件,我们看到如下配置:

即:php-fpm模块监听127.0.0.1:9000端口,等待要求到来去处理。

三、总结

nginx与php-fpm的结合,完全的流程是这样的。

nginx与php-fpm的结合,完全的流程是这样的。

www.example.com

|

|

Nginx

|

|

路由到www.example.com/index.php

|

|

加载nginx的fast-cgi模块

|

|

fast-cgi监听127.0.0.1:9000地址 .

|

|

www.example.com/index.php要求到达127.0.0.1:9000

|

|

php-fpm 监听127.0.0.1:9000

|

|

php-fpm 吸收到要求,启用worker进程处理要求

|

|

php-fpm 处理完要求,返回给nginx

|

|

nginx将结果通过http返回给浏览器

四、效果展示

1、启动nginx与php-fpm模块

启动成功,我们查看php-fpm进程

如上图,有一个master进程,3个worker进程。

2、在网站目录下建立文件

我们编辑文件如下图:

3、访问网站

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注的PHP视频教程栏目!

以上便是PHP与nginx之间运行机制及其事理的详细先容的详细内容,更多请关注其它干系文章!

更多技巧请《转发 + 关注》哦!

标签:

相关文章

宁波IT产业,创新驱动,引领未来

宁波,这座古老而充满活力的城市,正以其独特的魅力吸引着越来越多的目光。近年来,宁波IT产业迅速崛起,成为推动城市经济发展的新引擎。...

PHP教程 2024-12-28 阅读0 评论0

小风IT互动,介绍数字时代下的智慧生活

随着科技的飞速发展,我们正逐步迈入数字时代。在这个时代,智能设备、大数据、云计算等新兴技术层出不穷,它们正在深刻地改变着我们的生活...

PHP教程 2024-12-28 阅读0 评论0

展望未来,IT行业的前途与挑战

随着科技的飞速发展,IT行业已成为当今社会最热门的行业之一。从互联网、大数据、人工智能到云计算,IT技术不断推动着各行各业的发展。...

PHP教程 2024-12-28 阅读0 评论0