请先关注 [低调大师] 公众号 优秀的自媒体个人博客,低调大师,许军

低调大师

您现在的位置是:首页>文章详情

文章详情

Nginx之6大千世界 - (FastCGI)

2019-03-06 32热度

为什么要使用FastCGI

在之前已经介绍Nginx只是一个静态应用服务器,并不能直接执行外部的动态脚本程序,但是Nginx可以作为代理服务器,将动态的请求转发给后端服务处理。Nginx中的模块"ngx_http_fastcgi_module"专门为了解决此类问题。

FastCGI工作原理

Nginx因为不支持对外部程序的直接调用或者解析,所以所有的外部程序必须通过FastCGI接口来调用(如下图所示),还需要使用封装器(wapper)对FastCGI的Nginx请求理解成Application所成识别的形式进行传递,封装器的线程对请求完成后在通过FastCGI传回给Nginx。
1

功能配置

使用Nginx去监听用户请求,如果请求的是php页面,则代理至后端PHP的脚本解析服务器。

1.启动php脚本解析服务,确认9000端口已监听中
2

2.修改Nginx的配置文件,将php页面请求转发至脚本解析服务

 server { listen 80; server_name nginx.yekangming.com; location / { root /data/webroot/nginx; index index.html; } location ~ \.php$ { root /data/webroot/nginx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

3.FastCGI配置详解(conf/fastcgi.conf)

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件 请求的路径 fastcgi_param QUERY_STRING $query_string; #请求的参数 fastcgi_param REQUEST_METHOD $request_method; #请求的动作(GET,POST) fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-Type字段 fastcgi_param CONTENT_LENGTH $content_length; #请求头中的Content-length字段 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #脚本名称 fastcgi_param REQUEST_URI $request_uri; #请求的地址不带参数 fastcgi_param DOCUMENT_URI $document_uri; #与$uri相同 fastcgi_param DOCUMENT_ROOT $document_root; #网站的根目录 fastcgi_param SERVER_PROTOCOL $server_protocol; #请求使用的协议 fastcgi_param REQUEST_SCHEME $scheme; #请求协议 fastcgi_param HTTPS $https if_not_empty; # 有https协议时自动使用https fastcgi_param GATEWAY_INTERFACE CGI/1.1;#cgi 版本 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; #nginx版本号 fastcgi_param REMOTE_ADDR $remote_addr; #客户端IP fastcgi_param REMOTE_PORT $remote_port; #客户端端口 fastcgi_param SERVER_ADDR $server_addr; #服务器IP地址 fastcgi_param SERVER_PORT $server_port; #服务器端口 fastcgi_param SERVER_NAME $server_name; #服务器名 fastcgi_param REDIRECT_STATUS 200; 重定向状态码

访问效果
3
4

小知识

在真实的场景中,我们一般会使用Nginx来处理静态资源请求,如果对于动态资源请求,我们将会采用反向代理、FastCGI等方式和后端的应用服务器进行交互。

收藏 (0)

相关文章

    文章评论

    共有0条评论来说两句吧...