Nginx中fastcgi_pass的配置问题[通俗易懂]

Nginx中fastcgi_pass的配置问题[通俗易懂]Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIXDomainSocket.其中TCP是IP加端口,可以跨服务器.而UNIXDomainSocket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置:方式1:php…

大家好,又见面了,我是你们的朋友全栈君。

NginxPHP-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(NginxPHP-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_root$fastcgi_script_name;

include        fastcgi_params;

webapp权限www:www

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157384.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mt4交易软件云服务器_MT4交易软件的使用教程及快捷键「建议收藏」

    mt4交易软件云服务器_MT4交易软件的使用教程及快捷键「建议收藏」点击热键F11,客户端转换为全屏模式。在全屏模式下调用功能键使用如下:Ctrl+M-MarketWatch(?市场观察?);Ctrl+N-Navigator(?导航?);Ctrl+T-Terminal(?终端?);Ctrl+D-Datawindow(?数据窗口?).还原一般形态重按热键F11。***选择热键操作可以快速将指标,智能交易或脚本添加到图表中。这种形式在全…

    2022年5月7日
    91
  • Java递归调用_递归算法1加到100

    Java递归调用_递归算法1加到100递归用于解决什么样的问题?1)各种数学问题如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.3)将用栈解决的问题–>递归代码比较简洁简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归需要遵守的重要规则:1…

    2022年9月2日
    5
  • 云邦互联免费空间(免备案,无广告)「建议收藏」

    云邦互联免费空间(免备案,无广告)「建议收藏」【1G免费全能空间,免备案,无广告】1G全能空间+100M数据库(Mysql5.5)支持的脚本:ASP、PHP(5.2-7.0)、.NET(2.0/4.0)没有任何限制,详细功能请访问:https://www.yunzz.net/host/free.html(云邦互联)推广员:ftp257684p…

    2022年6月18日
    26
  • 深入研究Clang(三) libclang

    深入研究Clang(三) libclang

    2021年11月15日
    41
  • pycharm中文语言包下载不了_pycharm基本使用方法

    pycharm中文语言包下载不了_pycharm基本使用方法本文为原文转载PyCharmproforMac(编程开发软件)​www.mac69.com安装完成后运行,进行基本的配置后会弹出激活窗口,选择「Evaluateforfree」,然后点击「Evaluate」按钮。PyCharmproforMac(编程开发软件)安装完成后运行,进行基本的配置后会弹出激活窗口,选择「Evaluateforfree」,然后点击「Evaluate」按钮…

    2022年8月29日
    2
  • MySQL: Hash索引优缺点

    MySQL: Hash索引优缺点优点:因为索引自身只需存储对应的哈希值,所以索引的结构十分紧凑,这也让哈希索引查找的速度非常快缺点:1、不能避免读取行哈希索引只包含哈希值和行指针,而不存储字段值,所以不能使用索引中的值来避免读取行。不过,访问内存中的行的速度很快,所以大部分情况下这一点对性能的影响并不明显。2、无法用于排序哈希索引数据并不是按照索引值顺序存储的,所以也就无法用于排序。3、无法使用部分索…

    2022年5月26日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号