無論是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)