Nginx 调用CGI

http://www.cnblogs.com/7hihi/archive/2012/06/18/2564259.html  Nginx C++ CGI安装与配置[转]

 

适用 Nginx通过fastcgi调用python, Perl和C++等写的CGI程序。PHP有PHP-FPM (FastCGI Process Manager),这个对PHP来说更好的FastCGI进程管理器,关于PHP-FPM的更多信息, 请Google php-fpm+nginx原理 Nginx并不提供支持对外部程序的直接调用或者解析(所以缺少像apache里的mod_php这样的模块),所有的外部程序(包括PHP)必须 通过fastcgi接口来调用,在Linux下接口是socket (文件socket或者Internet socket)。所以为了调用CGI程序,我们需要一个fastcgi的wrapper,这个wrapper绑定在某个固定socket上(比如端口或者 文件socket),当nginx将CGI请求发送给这个socket的时候,wrapper接纳请求并fork一个新的线程,这个线程调用外部的程序或 者解释器处理脚本并读取返回值,而wrapper再将返回的数据(网页或者图片等)通过fastcgi将数据通过那个固定的socket传递给 nginx。示意图如下:
Ningx的FastCGI原理
所以,我们首先需要一个wrapper,这个wrapper需要完成的工作:
1.通过调用fastcgi(库)的函数通过socket和ningx通信(读写socket是fastcgi内部实现的功能,对wrapper是非透明的)
2.调度thread,进行fork和kill 3.和application进行通信.
 
安装步骤
1. 安装nginx
2. 安装spwan-fcgi  (下载url:  )
4. nginx配制:
location ~ \.cgi$ {
            fastcgi_pass  127.0.0.1:10001;
            fastcgi_index index.cgi;
            include fastcgi.conf;
        }
 
5. 启动spawn-fcgi -a 127.0.0.1-p 10001 -u www -g www -f /usr/local/sbin/fcgiwrap
http://hi.baidu.com/cjcht/blog/item/450c0754caa9d148564e00a2.html

 

 

http://linuxjcq.blog.51cto.com/3042600/718002   spawn-fcgi运行fcgiwrap

 

http://blog.sina.com.cn/s/blog_5921b17e01019oil.html    nginx断点上传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Nginx中配置CGI(Common Gateway Interface)以运行C语言程序,需要进行以下步骤: 1. 安装NginxCGI支持:首先,确保已经安装了Nginx服务器。然后,安装CGI支持,可以通过在终端中运行以下命令来安装所需的软件包: ``` sudo apt update sudo apt install nginx sudo apt install fcgiwrap ``` 2. 配置Nginx:打开Nginx的配置文件(通常是`/etc/nginx/nginx.conf`),找到`http`块,在其中添加以下内容: ``` server { listen 80; server_name example.com; // 替换为您的域名或IP地址 location /cgi-bin { gzip off; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin$fastcgi_script_name; } } ``` 3. 创建CGI脚本:在指定的位置(上述配置中的`/usr/lib/cgi-bin`)创建一个C语言的CGI脚本。例如,创建一个名为`hello.c`的文件,并添加以下内容: ```c #include <stdio.h> int main() { printf("Content-Type: text/html\n\n"); printf("<h1>Hello, CGI!</h1>"); return 0; } ``` 4. 设置CGI脚本的权限:确保CGI脚本具有执行权限。可以使用以下命令更改文件权限: ``` chmod +x /usr/lib/cgi-bin/hello.c ``` 5. 重启Nginx服务:完成上述步骤后,重新启动Nginx以使配置生效: ``` sudo service nginx restart ``` 现在,您可以通过访问`http://example.com/cgi-bin/hello.c`来查看CGI脚本的输出。请确保将`example.com`替换为您的域名或IP地址。在浏览器中打开该URL后,您应该能够看到显示"Hello, CGI!"的页面。 请注意,这只是基本的配置示例,您可能需要根据自己的需求进行调整。另外,还可以使用其他CGI库或框架来编写更复杂的C语言CGI程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值