Nginx中fastcgi_pass的配置问题[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket. 其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置: 方式1: php-fpm.conf: listen = 127.0.0.1:9000 nginx.conf: fastcgi_pass 127.0.0.1:9000; 方式2: php-fpm.conf: listen = /tmp/php-fpm.sock nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock; 其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw—-.
UNIX Domain Socket可用于两个没有亲缘关系的进程,是目前广泛使用的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的.这种通信方式是发生在系统内核里而不会在网络里传播.UNIX Domain Socket和长连接都能避免频繁创建TCP短连接而导致TIME_WAIT连接过多的问题.对于进程间通讯的两个程序,UNIX Domain Socket的流程不会走到TCP那层,直接以文件形式,以stream socket通讯.如果是TCP Socket,则需要走到IP层,对于非同一台服务器上,TCP Socket走的就更多了.
UNIX Domain Socket: Nginx <=> socket <=> PHP-FPM TCP Socket(本地回环): Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM TCP Socket(Nginx和PHP-FPM位于不同服务器): Nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> PHP-FPM
像mysql命令行客户端连接mysqld服务也类似有这两种方式:
使用Unix Socket连接(默认):
mysql -uroot -p --protocol=socket --socket=/tmp/mysql.sock
使用TCP连接:
mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306
实际操作
php-fpm.conf:
listen = /tmp/php-fpm.sock
启动php-fpm后,生成文件 /tmp/php-fpm.sock
user = www
group = www
listen.owner = www
listen.group = www
配置以上,确保/tmp/php-fpm.sock权限www:www
nginx.conf:
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
include fastcgi_params;
webapp权限www:www
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157384.html原文链接:https://javaforall.cn
相关文章
- vsftpd配置chroot_local_user与chroot_list_enable详解
- Nginx服务配置篇·第四课:NextCloud优化整合
- SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合
- gpsgate 配置过程
- 使用 mysqldump 或 mydumper 配置 MySQL 主从复制
- SQLServer找不到配置管理器,如何打开配置管理器
- nginx https 开发 DAT/UAT环境配置
- Nginx配置Https并进行Http强制跳转Https
- Windows下Nginx连接数配置及请求限制
- Nginx配置文件(nginx.conf)配置详解
- K8s nginx-ingress 如何配置二级目录转发远程静态服务器基于Vue路由history模式打包的应用程序
- 学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
- 【前端部署附录二】写给前端的 nginx 配置指南
- nginx负载均衡配置详解_负载均衡算法实现
- nginx 同一 iP 多域名配置方法(单文件)
- 一篇带你搞懂Nginx命令、配置、反向代理、负载均衡
- nginx正向代理配置
- nginx配置ssl证书详解程序员
- nginx的日志配置详解程序员
- Mysql数据库日志配置详解数据库
- Linux域名服务器:尽在手中实现完美配置(linux域名服务器配置)
- Linux查看Nginx版本:一步到位(linux查看nginx版本)
- 如何在Nginx上配置MySQL数据库(nginx配置mysql)
- 用Debian类安装Nginx详细配置
- 服务如何在Linux中删除Nginx服务(linux删除nginx)
- 借助Redis和Nginx进行更有效的负载均衡(redis配合nginx)
- WIN下Nginx缓存加速配置方法
- Nginx+Windows负载均衡配置方法
- 使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法
- Nginx配置指令location匹配符优先级和安全问题
- nginx+rsync+inotify实现负载均衡配置方法
- nginx配置ssl双向验证的方法
- nginx支持codeigniter的pathinfo模式url重写配置写法示例
- nginx下gzip配置参数详解
- Nginx反向代理websocket配置实例