无论是mysql,uwsgi还是nginx都会用到sock文件
首先它是由程序自动创建的,并不是我们自己手动。它的作用是用来通信。与之相对应的是tcp socket ,一般的程序会同时支持这两种方式,在服务器压力比较大的时候,使用sock文件,效率更高。
Nginx连接fastcgi的方式有2种:
unix domain socket和TCP,
Unix domain socket 或者 TCP socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种组件。
在一切皆文件的Unix-like系统中,进程生产的socket通过socket文件来表示,进程通过向socket文件读写内容实现消息的传递。
在Unix中,本机之间进程通信通常用另外一种socket( Unix domain socket)。
像mysql,在配置文件中而已指定sock文件的位置,当然也可以用ip端口的形式
uwsgi也一样,在他的配置文件ini中同样可以配置
无论是mysql还是uwsgi,一定要重启服务,sock文件才会创建。
就是以 .sock 为后缀的文件而已。UNIX 系统不以后缀区分文件类型,但为了方便,通常使用后缀来标识一下。.sock 文件极有可能是 UNIX 域套接字(UNIX domain socket),即通过文件系统(而非网络地址)进行寻址和访问的套接字。参见 man 手册 unix(7)
本文探讨了Unix域套接字(Unix domain socket)的概念及其在Unix-like系统中的应用,如Nginx、mysql和uwsgi等软件如何利用sock文件进行高效进程间通信。文章对比了Unix域套接字与TCPsocket的优缺点,阐述了它们在服务器高负载情况下的性能优势。
1103

被折叠的 条评论
为什么被折叠?



