nginx是如何与phpfpm进行结合通信的【nginx】

编程

一.首先你的nginx服务和php服务已经安装并启动

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器

PHP-FPM是一个实现了Fastcgi的程序,被PHP官方收了。

备注:

php-fpm的管理对象是php-cgi。但不能说php-fpm是fastcgi进程的管理器,因为前面说了fastcgi是个协议。

修改php.ini之后,php-cgi进程的确是没办法平滑重启的。php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。

如果涉及php安装和nginx安装,请参考的另外两篇文章

centos系统下php7.3安装

centos系统下安装nginx

二.配置nginx.conf文件

1.找到nginx安装目录下的conf目录下nginx.conf文件

2.文件的顶部相关信息配置

worker_processes默认情况下为1,一般情况下不用修改,但考虑到实际情况,可以修改这个数值,以提高性能;
官方的建议是修改成CPU的内核数,这里引用一段翻译过的文章: 
worker_processes指明了nginx要开启的进程数

user www www;

worker_processes 4;

error_log /var/log/nginx/error.log warn;

#pid logs/nginx.pid;

events {

worker_connections 1024;

}

3.http下的基本配置

log_format main (注意这个main是后面配置访问日志路径是需要用到的,这里说明了使用这个格式)

upstream web 分配方式,指向php-fpm.sock的文件位置,我这里叫www.sock

    include       mime.types;

default_type application/octet-stream;

log_format main "$remote_addr - $remote_user [$time_local] "$request" "

"$status $body_bytes_sent "$http_referer" "

""$http_user_agent" "$http_x_forwarded_for"";

sendfile on;

keepalive_timeout 65;

upstream web {

server unix:/run/php-fpm/www.sock weight=100 max_fails=10 fail_timeout=30;

}

4.server对象里面的配置

fastcgi_pass   web 这里的web就是http下的upstream方式

access_log  /var/log/buxingjie/access.log  main  这里的main也是在http那里定义了

root /var/www/www.buxingjie.com/public/   网站根路径 ,里面包含index.php文件,你也可以写个测试的文件

        listen       80; 

server_name 39.47.108.154;

root /var/www/www.buxingjie.com/public/;

index index.php index.html index.htm;

access_log /var/log/buxingjie/access.log main;

error_log /var/log/buxingjie/error.log;

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

location / {

fastcgi_pass web;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

rewrite ^(.*)$ /index.php$1 break;

}

5.www.sock文件如何寻找

ps -ef | grep "php-fpm"   (查看服务)

vim /etc/php-fpm.conf   (master主进程里面会有这个路径的提示,打开后找到这行include=/etc/php-fpm.d/*.conf)

cd /etc/php-fpm.d/    (一般会有个www.conf的文件)

vim www.conf    (找到listen,这里的listen = /run/php-fpm/www.sock ,就是php监听的文件,把这个路径配置在nginx那里)

以上是 nginx是如何与phpfpm进行结合通信的【nginx】 的全部内容, 来源链接: utcz.com/z/515883.html

回到顶部