hun*_*gnv 5 php cgi fastcgi nginx
我想了解网络服务器(例如:nginx)和cgi/fastcgi如何相互通信.Web服务器如何将cgi脚本传递给cgi进程以及cgi进程如何响应请求.
在Nginx中,我们这样配置让nginx将PHP脚本传递给php-fpm
location / {
root /home/service/public_html;
fastcgi_pass unix:/tmp/php-fpm-test.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/service/public_html/index.php;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
它是如何工作的?
编辑:如果有人能给我一段伪代码来描述进程(或其他)与php-fpm unix socket之间的通信,将不胜感激.
CGI 应用程序只是一个标准的可执行文件或脚本 - 对 Web 服务器的每个 HTTP 请求对应于该可执行文件或脚本的单个执行/实例,其中环境变量用于传递有关请求的信息(例如请求 URL 和请求方法) ) 并且 HTTP 请求正文在标准输入上传递。脚本/可执行文件传递原始HTTP 输出传递到 Web 服务器。
有关 CGI 应用程序的示例,请参阅wikipedia 页面的示例 perl 脚本,有关更多详细信息,请通读CGI 规范
Fast CGI 试图减少 CGI 接口的开销 - 由于在许多操作系统上启动新进程是一项相对昂贵的任务,Fast CGI 尝试通过允许单个长时间运行的 Fast CGI 进程处理许多 HTTP 请求来减少这种开销。
尽管Fast CGI的许多部分与CGI相似(例如环境变量的格式),但Fast CGI都信息都通过标准输入流传递。
您应该尝试查看Fast CGI 网站以获取更多信息 - 特别是那里的 Fast CGI 规范并详细解释了所有这些内容。
| 归档时间: |
|
| 查看次数: |
1777 次 |
| 最近记录: |