Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。php
Nginx不仅有处理http请求的功能,还能作反向代理。Nginx经过反向代理功能将动态请求转向后端Php-fpm。nginx
下面咱们来配置一个全新的Nginx+Php-fpm后端
进入nginx目录下,编辑 nginx.conf文件。
如图,在nginx.conf最后一行,添加include文件浏览器
进入上面include的路径,添加一个server.服务器
下面咱们解释一下配置项的含义:php-fpm
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.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的php-fpm来处理这个请求网站
打开php-fpm.conf文件,咱们看到以下配置:ui
即:php-fpm模块监听127.0.0.1:9000端口,等待请求到来去处理。spa
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返回给浏览器
启动成功,咱们查看php-fpm进程
如上图,有一个master进程,3个worker进程。
咱们编辑文件以下图: