Nginx是俄国人最早开发的Webserver,现在已经风靡全球,相信大家并不陌生。PHP也通过二十多年的发展来到了7系列版本,更加关注性能。这对搭档在最近这些年,叱咤风云,基本上LNMP成了当下的标配。可是,你用了这么多年的Nginx+PHP的搭配,你真正知道他们之间是怎么交互怎么通信的么?
Nginx是什么
PHP-fpm是什么
1、cgi、fast-cgi协议
cgi的历史
webserver处理不了了,怎么办呢?那就交给PHP解释器来处理吧!
为了解决不同的语言解释器(如PHP、python解释器)与webserver的通信,于是出现了cgi协议。只要你按照cgi协议去编写程序,就能实现语言解释器与webwerver的通信。如php-cgi程序。
fast-cgi的改进
但是,webserver每收到一个请求,都会去fork一个cgi进程,请求结束再kill掉这个进程。这样有10000个请求,就需要fork、kill php-cgi进程10000次。
有没有发现很浪费资源?
于是,出现了cgi的改良版本,fast-cgi。fast-cgi每次处理完请求后,不会kill掉这个进程,而是保留这个进程,使这个进程可以一次处理多个请求。这样每次就不用重新fork一个进程了,大大提高了效率。
2、PHP-fpm是什么
2、添加对应的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的时候,处理流程是这样的:
三、总结
四、效果展示
2、在网站目录下建立文件
我们编辑文件如下图:
3、访问网站
更多精彩内容等你来学习进阶PHP月薪30k>>>架构师成长路线【视频、面试文档免费获取】