无论是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)