技术分享之web server与php-fpm
主题
web server与动态请求
主流程
- web server 与 html
- web server 与 cgi
- web server 与 fastcgi
1. web server到底做了什么?
- 在指定端口上监听请求
- 等待来自客户端的请求
- 处理http请求
- 通过GET /index.html HTTP/1.1解析出本地文件
- root path拼接上文件名获取到本地文件内容
- 将内容拼接上相应头返回给客户端
2. web server如何解析动态请求?
- 通用网关接口(Common Gateway Interface/CGI)1993 NCSA
- 规范了web server与处理程序之间的通讯标准
- 标准定义了什么?
- web server与处理程序使用stdin,stdout,环境变量数据交换
- 处理程序在单独的进程中执行
- cgi的工作方式
- 将脚本定义好放在指定的目录
- 脚本与url匹配时,执行相应的cgi程序
- web server收集程序输出,添加响应头返回给客户端
- cgi的问题?
- 先fork进程,然后执行,并发情况下基本不能用
- 对于解释型语言,需要加载配置文件和调用解释器初始化执行环境等
3. web server与fastcgi
- 快速通用网关接口(Fast Common Gateway Interface/FastCGI)致力于减少web server与cgi程序交互的开销
- php-fpm实现了fastcgi所带来的优势
- (动态,静态)进程生成来处理一连串的请求,与web server解耦
- Web server与FastCGI进程通过socket或tcp通信
- 平滑重启与启动
- slow log
4. web server与php-fpm进程通信
5. 参考文献
- 《深入理解计算机系统》-> 网络编程章节
- 《嗨翻c语言》-> 网络与套接字
分享感触
今天分享完了,自己也是尽量放慢了语速,但是还是感觉大家没有融入进来,分享真的是一门学问呀!
工作这么多年,只分享过两次,自己的感觉是有好多东西想讲,但是真正开讲的时候大多都忘了,给人的感觉就是匆匆而过。
还有一点是下次分享的时候,可以考虑先把ppt给到大伙儿,因为每个人的学习方向都不一样,除了听众研究过,或者听众知识储备比较丰富,否则很难产生共鸣,大伙儿提前看看ppt可以对内容有更好的了解,也能让提问环节更加有意义,如果讲完了大家都没有问题,就没意思了。
没有问题就是最大的问题。
用心准备一个分享是很重要的态度,因为十几二十几个人听你分享半个小时,如果没有点儿收获是对大家的时间极大的不负责任。
如果有机会,还要更加用心的准备分享。
(完)
- 本文作者:吴泽辉
- 本文链接:https://mutex.top/posts/22a01a5b/
- 发表日期:2018年12月27日
- 版权声明:本文章为原创,采用《知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议》进行许可