网站首页 > 技术教程 正文
为什么要使用FastCGI
在之前已经介绍Nginx只是一个静态应用服务器,并不能直接执行外部的动态脚本程序,但是Nginx可以作为代理服务器,将动态的请求转发给后端服务处理。Nginx中的模块"ngx_http_fastcgi_module"专门为了解决此类问题。
FastCGI工作原理
Nginx因为不支持对外部程序的直接调用或者解析,所以所有的外部程序必须通过FastCGI接口来调用(如下图所示),还需要使用封装器(wapper)对FastCGI的Nginx请求理解成Application所成识别的形式进行传递,封装器的线程对请求完成后在通过FastCGI传回给Nginx。
功能配置
使用Nginx去监听用户请求,如果请求的是php页面,则代理至后端PHP的脚本解析服务器。
1.启动php脚本解析服务,确认9000端口已监听中
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; 重定向状态码
访问效果
小知识
在真实的场景中,我们一般会使用Nginx来处理静态资源请求,如果对于动态资源请求,我们将会采用反向代理、FastCGI等方式和后端的应用服务器进行交互。
猜你喜欢
- 2024-10-10 Nginx web服务器(nginx Web服务器)
- 2024-10-10 Nginx 了解一下?(nginx的理解)
- 2024-10-10 Nginx可以做什么?看完这篇你就懂了
- 2024-10-10 Nginx常用配置(nginx配置cgi)
- 2024-10-10 Spring Boot 中的静态资源到底要放在哪里?
- 2024-10-10 「Web开发」Spring MVC 中的静态资源与缓存
- 2024-09-14 Openresty/Nginx 缓存设置(nginx 缓存配置)
- 2024-09-14 一篇文章了解nginx特性,值得收藏
- 2024-09-14 Nginx-location的匹配规则(nginx配置文件中的location)
- 2024-09-14 Nginx主要应用场景|反向代理|负载均衡|动静分离|HTTP服务器
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)