php + nginx
由于这两天一直在阿里云上使用docker部署PHP+nginx的环境,所以对php的运行方式理解更深入了一层。
php和nginx是如何运行的
1、 应用程序调用php接口的时候访问server端的nginx配置好的主机端口,此处假设是访问服务器80端口。
2、 nginx根据配置文件通知绑定在主机中9000端口的php-fpm接收到了client端的请求。
3、 php-fpm根据nginx配置中的fastcgi_param参数处理请求。
4、 请求处理完毕返回请求结果。
以上,可以看到nginx本身不会对php进行解析,nginx在这个过程中只是反向代理,其通过反向代理将动态请求转向后段的php-fpm处理。
关于docker nginx + php 配置
理解了nginx和php的实现原理,对于使用docker部署环境有很大的帮助。
在docker中,需要理解镜像、容器和仓库,这个前面一篇文章已经略微的解释了一次,在此就不再赘述。
一个应用(包括app,web站点)可以理解为是有n个服务组成的,比如说一个app应用至少需要server,api,db。
如果不使用docker,传统的做法是在一台或者几台服务器中配置好这些服务。纵使有os镜像存在,其实还是很繁琐。
如果使用docker,docker的做法是将每个服务分开到单独的容器中,一个容器就代表一个服务,而且docker对各个容器间的通信处理的也很好。
这样就大大简化了部署环境的流程。