美文网首页
Nginx+PHP-FPM的域Socket(套接字)配置

Nginx+PHP-FPM的域Socket(套接字)配置

作者: taobao | 来源:发表于2021-07-16 08:33 被阅读0次

    Nginx连接fastcgi的两种方式

    • unix domain socket
    • TCP

    两者之间的区别

    • TCP适用TCP端口连接,一般形式:127.0.0.1:9000
    • socket一般形式为/tmp/php-cgi.sock
    • 压力不大的情况下,二者区别不大,压力比较满的情况下,适用套接字方式(unix domain socket)更省资源
    • TCP模式通过网络通信,可以跨机器;套接字不行,服务必须部署在同一机器上

    什么是域Socket配置

    Uninx doamin socket 或者 IPCsocket是一种终端,可以是同一操作系统上的两个或者多个进程间进行数据通信,与管道相比,Uninx domain sockets可以使用字节流和数据队列,而管道通信只能通过字节流。Uninx domain sockets不使用网络底层协议来通信,是POSIX操作系统里的一种组件,使用系统文件的地址来作为自己的身份,可以被系统进程引用,两个进程可以同时打开一个Unix domain sockets文件来进行通信,不过这种通信方式是发生在系统内核里,不会在网络里传播

    创建socket文件

    touch /data/php-fcgi.sock
    chown www:www /data/php-fcgi.sock
    chmod 777 /data/php-fcgi.sock
    

    Nginx相关配置

    location ~\.php$ {
      root /home/wwwroot;
      include fastcgi_params;
      #fastcgi_pass  127.0.0.1:9000;                #TCP模式
      fastcgi_pass unix:/data/php-fcgi.sock;     #套接字模式
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME/$fastcgi_script_name;
    }
    

    PHP-FPM配置

    /etc/php/php-fpm.conf //不同环境具体路径不一样

    user = www
    group = www
    ;listen = 127.0.0.1:9000            //非socket模式
    listen = /data/php-fcgi.sock      //socket模式
    

    总结

    • socket模式,不能通过网络通信,只能适用于单台机器,效率更高

    相关文章

      网友评论

          本文标题:Nginx+PHP-FPM的域Socket(套接字)配置

          本文链接:https://www.haomeiwen.com/subject/juoppltx.html