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