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

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

访客 2024-10-30 0

扫一扫用手机浏览

文章目录 [+]

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

Nginx是什么

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

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

php和nginx技巧_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之间运行机制及其事理的详细先容的详细内容,更多请关注其它干系文章!

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

标签:

相关文章

Java代码虚拟化保护技术与应用前景

软件应用的需求日益增长,软件开发过程中对代码的保护成为了一个重要议题。Java作为一种广泛应用于企业级应用的编程语言,其代码虚拟化...

PHP教程 2025-03-02 阅读1 评论0

CAD插件错误代码与应对步骤

CAD(计算机辅助设计)软件在工程设计领域得到了广泛应用。CAD插件作为提升设计效率的重要工具,在提高设计师工作效率的也带来了一定...

PHP教程 2025-03-02 阅读1 评论0

上古卷轴代码规则大全游戏背后的编程奥秘

《上古卷轴》作为一款深受玩家喜爱的角色扮演游戏,自问世以来便以其丰富的世界观、独特的游戏体验和深厚的文化底蕴吸引了无数玩家。在这款...

PHP教程 2025-03-02 阅读1 评论0