FastCGI与spawn-fcgi安装与配置

简介: FastCGI与spawn-fcgi安装与配置

编译安装spawn-fcgi


spawn-fcgi源码包下载地址:http://redmine.lighttpd.net/projects/spawn-fcgi/wiki


编译和安装spawn-fcgi相关命令:


tar -zxvf spawn-fcgi-1.6.4.tar.gz
cd spawn-fcgi-1.6.4/
./configure
make
sudo make install


如果遇到以下错误:


./autogen.sh: x: autoreconf: not found
• 1


因为没有安装automake工具,ubuntu用下面的命令安装即可:


sudo apt-get install autoconf automake libtool


spawn-fcgi的帮助信息可以通过man spawn-fcgi或spawn-fcgi -h获得,下面是部分常用


spawn-fcgi参数信息:



编译安装fcgi


软件开发套件:fcgi


使用C/C++编写FastCGI应用程序,可以使用FastCGI软件开发套件或者其它开发框架,如fcgi。


fcgi源码包下载地址:http://www.filewatcher.com/d/Gentoo/distfiles/Other/fcgi-2.4.1-SNAP - 0910052249.tar.gz.614929.html


编译和安装fcgi相关命令:


tar -zxvf fcgi-2.4.1-SNAP-0910052249.tar.gz
cd fcgi-2.4.1-SNAP-0910052249/
./configure
make
sudo make install


测试检查是否成功


测试程序源代码


#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
#include <unistd.h>
#include "fcgi_stdio.h"
int main(int argc, char *argv[])
{
  int count = 0;
  //阻塞等待并监听某个端口,等待Nginx将数据发过来
  while (FCGI_Accept() >= 0)
  {
    //如果想得到数据,需要从stdin去读,实际上从Nginx上去读
    //如果想上传数据,需要往stdout写,实际上是给Nginx写数据
    printf("Content-type: text/html\r\n");
    printf("\r\n");
    printf("<title>Fast CGI Hello!</title>");
    printf("<h1>Fast CGI Hello!</h1>");
    //SERVER_NAME:得到server的host名称
    printf("Request number %d running on host <i>%s</i>\n", ++count, getenv("SERVER_NAME"));
  }
  return 0;
}


需进行的有关Nginx的fcgi的配置


目录在sudo vi /usr/local/nginx/conf/nginx.conf


#监听用户的test请求,通过fastcgi_pass交给本地8001端口处理
#此时spwan-cgi已经将8001端口交给之前我们写好的test进程处理
location /test {
  fastcgi_pass 127.0.0.1:8001;
  fastcgi_index test;
  include fastcgi.conf;
}


修改配置之后记得重新启动Nginx服务


sudo nginx -s reload
• 1


编译运行代码:


编译:gcc fcgi_test.c -lfcgi -o test
运行:spawn-fcgi -a 127.0.0.1 -p 8001 -f ./test


报错处理:spawn-fcgi:child exited with: 127


请看下文解决方案:


https://blog.csdn.net/weixin_45525272/article/details/107822305


解决错误之后再编译运行,出现子进程的PID即配置成功。


相关文章
|
负载均衡 Ubuntu 应用服务中间件
|
Web App开发 数据安全/隐私保护 网络架构
OpenWRT下实现Portal认证(WEB认证)
首先简单介绍一下什么是Portal认证,Portal认证,通常也会叫Web认证,未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务。当用户需要使用互联网中的其它信息时,必须在门户网站进行认证,只有认证通过后才可以使用互联网资源。
10450 0
|
开发框架 前端开发 Linux
开源项目推荐:C++ Web/Http Server/Rest开发框架(请重点关注Oat++和搜狗workflow)
开源项目推荐:C++ Web/Http Server/Rest开发框架(请重点关注Oat++和搜狗workflow)
4913 0
|
应用服务中间件 网络安全 nginx
Nginx配置WebSocket 【支持wss与ws连接】
Nginx配置WebSocket 【支持wss与ws连接】
9582 1
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
5333 85
终极 Nginx 配置指南(全网最详细)
|
11月前
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
存储 缓存 JSON
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
|
存储 Linux
挂在mount报错can't read superblock修复过程
`can't read superblock`错误表明存在文件系统或硬件问题,解决这类问题需要先从软件层面尝试修复,无效时再考虑硬件替换。值得注意的是,数据备份对于防范这类突发故障至关重要,应定期进行数据备份,以最大限度减少数据丢失风险。
6943 3
|
tengine 网络协议 应用服务中间件
WAF-HTTPS [Encrypted Alert]断开连接
WAF-HTTPS [Encrypted Alert]断开连接
16079 0
WAF-HTTPS [Encrypted Alert]断开连接