首先,只有nginx直接接受用户访问的请求,若是静态请求,nginx可以本地解析,直接返回数据给用户。若是动态请求的话。就需要php的配合,去后端数据库,查看取得用户请求的数据,然后返回给nginx,nginx返回给用户。
那么,nginx怎么和php互动的,php有时怎么从后端取得数据的?
这里nginx和php之间就需要一个桥梁fastCGI。那什么是fastCGI呢?他是一个可伸缩的、高速的在HTTP服务器和动态脚本脚本语言间通信的接口,主要优点是将动态语言和HTTP服务器分离开来。
在nginx端,配置location匹配以.php结尾的动态请求,然后利用fastcgi_pass(默认使用172.0.0.1:9000)将用户的动态请求抛给fastCGI。
在php端有一个php-fpm进程(配置文件php-fmp.conf)监听fastcgi,当接到nginx通过fastCGI跑过来的用户请求后,其会利用一个wrapper(相当于一个可以启动另一个程序的程序)启动php解析器(配置文件php.ini),解析用户请求并从后端数据库中取得用户请求的数据。然后,返回给nginx数据,通过nginx将用户请求的数据返回个用户。
欢迎各位指正;谢谢。
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦