在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
接上一篇,复习一下 启动php或hhvm:
启动nginx或lighttpd:
从php切换到hhvm如果使用hhvm,则需要切换webserver的配置到hhvm。Nginx配置切换需要修改
这是因为fast-cgi监听的方式有两种,一种是通过端口,一种是通过socket文件。
关于socket方式,可以看这篇文章: https://blog.linuxeye.cn/364.html
Nginx连接fastcgi的方式有2种:TCP和unix domain socket 注:socket更快。unix domain socket其实是IPC的一种。
Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种组件。
Unix domain sockets 使用系统文件的地址来作为自己的身份。它可以被系统进程引用。所以两个进程可以同时打开一个Unix domain sockets来进行通信。不过这种通信方式是发生在系统内核里而不会在网络里传播。
TCP和unix domain socket方式对比 TCP是使用TCP端口连接127.0.0.1:9000 Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多)
结论是在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好。
重启php-fpm与nginx
可以看到php-cgi.sock文件unix套接字类型
这里,有一些补充 http://blog.csdn.net/guxch/article/details/7041052
UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。 UNIX Domain Socket可用于两个没有亲缘关系的进程,是全双工的,是目前使用最广泛的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的。
UNIX Domain socket与网络socket类似,可以与网络socket对比应用。 上述二者编程的不同如下:
UNIX Domain socket的工作流程简述如下(与网络socket相同)。 服务器端:创建socket—绑定文件(端口)—监听—接受客户端连接—接收/发送数据—…—关闭 客户端:创建socket—绑定文件(端口)—连接—发送/接收数据—…—关闭
|
2022-07-18
2022-08-17
2022-11-06
2022-08-17
2022-07-29
请发表评论