Nginx + FastCgi + Spawn-fcgi + C 架构的server环境搭建

1.Nginx

1.1.安装

  1. Nginx 的中文维基 http://wiki.codemongers.com/NginxChs 下载
    Nginx 0.6.26(开发版)(请下载最新版本号)
  2. tar zxvf nginx-0.6.26.tar.gz
  3. ./configure。注意了类似checking for *** ... not found项,可能是依赖包没有。则须要安装依赖包
  4. 缺少PCRE,yum install pcre安装。

    或者去:http://www.pcre.org/
  5. 假设缺少OpenSSL,yum install libssl-dev,或者去:http://www.openssl.org
  6. 假设缺少zlib,能够yum install zlib1g,或者http://www.zlib.net/
  7. make & make install
  8. 建议安装在/usr/local/nginx下

1.2 启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2.FastCGI开发库安装

2.1 安装fastcgi库

下载://www.fastcgi.com/dist/fcgi.tar.gz

./configure

make

make install(须要root权限)

2.2 演示样例程序

#include <fcgi_stdio.h>
int main( int argc, char *argv[] )
{
  while( FCGI_Accept() >= 0 )
  {
      FCGI_printf( "Status: 200 OK\r\n" );
      FCGI_printf( "Content-Type: text/html\r\n\r\n" );
      FCGI_printf( "Hello world in +++++++\n" );
  }
  return 0;
}

Makefile编译:

TARGET = 1.cgi
INSTALL_PATH = .

LIBDIRS = -L/usr/local/lib 

LIBS += -lfcgi
CC = gcc
CXX = g++ 

CXXFLAGES += -Wall -O2
LDFLAGS = -Wl,-R /usr/local/lib

RM = rm -f
CP = cp -f

SOURCES += first-cgi.cpp 

OBJECTS = $(SOURCES:.cpp=.o)

.PHONY : all clean 

all:$(TARGET)

$(TARGET):$(OBJECTS)
    $(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(LIBDIRS) $(LIBS)

$(OBJECTS):%.o:%.cpp
    $(CXX) -c $(CXXFLAGES) $(INCLUDES) $< -o [email protected]

clean:
    -$(RM) $(TARGET) $(OBJECTS)

3.spawn-fcgi

先有必要有这样第一个认识:ngxin作为一个webserver,本身并不包括CGI的解释器。须要通过一个中间件【比如php-fpm】来执行CGI。他们之间的模式大致是:

nginx   <--   socket   -->   php-fpm-------->php

那么nginx既然要执行c写的CGI那么也应该有类似php-fpm的东西。

baidu, google了下。发现有一个spawn-fcgi的东西。原本是lighttp 内的fastcgi进程管理器

3.1 安装 spawn-fcgi

wget   http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
tar zxvf  lighttpd-1.4.19.tar.gz
cd  lighttpd-1.4.19
./configure
make

复制 编译好的spawn-fcgi到 nginx文件夹(须要root权限)。非常主要!!。。

cp ./src/spawn-fcgi /usr/local/nginx/sbin/

3.2 启动spawn-fcgi

#!/bin/bash
DESTDIR=.
HOST=‘127.0.0.1‘
PORT=‘7000‘
PROCESSNAME=‘1.cgi‘
sudo killall -9 $PROCESSNAME
echo "=====killed====="
RESTART="sudo /usr/local/nginx/sbin/spawn-fcgi -a $HOST -p $PORT -f $DESTDIR/$PROCESSNAME -F 1"
echo $RESTART
$RESTART
echo "======done======"
ps -ef | grep $PROCESSNAME

?

4.配置nginx.conf

server {
        listen       9990;
        server_name  localhost;
        #access_log  logs/host.access.log  main;
        location / {
            rewrite ^/(.*)$ localhost;
            root  html;
            index  index.html index.htm;
        }
        location ~ (.*) {
            fastcgi_pass  127.0.0.1:7000;
            fastcgi_index index.cgi;
            fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
            include fastcgi_params;
        }   

最后在浏览器中输入

http://192.168.1.120:9990/1.cgi

192.168.1.120是我虚拟机的地址

时间: 2024-10-12 16:34:24

Nginx + FastCgi + Spawn-fcgi + C 架构的server环境搭建的相关文章

CentOs Server环境搭建

CentOs Server环境搭建 标签(空格分隔): 环境搭建 centos 引言:本文档是在全新的CentOs系统搭建JAVA工程相关的服务器环境的指导文档,阅读本文档请使用markdown阅读器,或者在IDE开发工具中安装markdown插件 步骤索引: 1.安装JDK 2.安装Tomcat 3.安装Nginx 4.安装mysql 5.安装redis 正文 安装JDK 检查CentOs是否默认安装了openjdk软件,可以使用以下命令中的任意命令,最好都试一下: #rpm -qa |gre

ITFriend创业阶段的server环境搭建手冊

创业阶段,进一步实践了Linux环境搭建和维护,以下是一些经常使用软件的搭建步骤和參考资料,仅供自己和诸位參考. 我个人还是比較倾向"一站式Web开发"的.自己想做点事.须要太多的技能. 非商业软件项目,自己全盘负责比較灵活和高效. 1.mysql(关键是创建mysql用户,并用mysql用户运行安装程序)  參考资料 http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html  rpm -qa | g

Nginx + FastCgi + Spawn-fcgi + C 架构的服务器环境搭建

1.Nginx 1.1.安装 Nginx 的中文维基 http://wiki.codemongers.com/NginxChs 下载 Nginx 0.6.26(开发版)(请下载最新版本) tar zxvf nginx-0.6.26.tar.gz ./configure,注意了类似checking for *** ... not found项,可能是依赖包没有,则需要安装依赖包 缺少PCRE,yum install pcre安装.或者去:http://www.pcre.org/ 如果缺少OpenS

亿级流量场景下,大型缓存架构的虚拟机环境搭建

---内容持续更新--- 小型电商: 静态模板是固定的 数据库中的数据全量喧嚷到模板中,下次请求来了直接返回,速度也很快: 当数据上亿的时候,如果模板改定,把这些所有的数据在mysql中渲染进模板,非常耗时,不现实: 大型电商: 缓存数据生产服务: 不需要再进行全量重新渲染,直接将最新的html模板推送到nginx服务器,请求过来后直接在nginx本地进行渲染进模板中返回请求: redis的重要性: 虚拟机环境设置一: 虚拟机中安装CentOS 启动一个virtual box虚拟机管理软件 使用

VMWare下Web Server 环境搭建------LAMP

一.所需文件 新建一个虚拟机,虚拟机参数配置如下图 CentOS-6.2-x86_64-bin-DVD   Linux系统盘/64位.需要进入BIOS打开vt-x服务,方法: bios——config——cpu——intel Virtualization technology 选择开启即可 LAMP环境所需文件如下所示: 其中lamp.sh为自动安装脚本. 二.安装Linux系统 检查光盘,耗时比较长,选择SKIP 安装语音选择简体中文 选择是,丢弃所有数据 输入主机名 选择自定义分区 手动分区

SVN server环境搭建

VisualSVN server搭建: 1. 下载VisualSVN server for Windows安装包:https://www.visualsvn.com/ 2. 安装过程,基本就是下一步一直到底 3. 简单设置一下群组和用户 4. 添加对应的文件夹/项目结构

sprigcloud Eureka Server环境搭建

1.搭建springcloud的Erueka组件,现在搭建这些套件已经变的很方便了,进入https://start.spring.io/页面,如下图: 2.选择好Eureka Server,点击Generate Project - alt下载demo 3.解压demo.zip,打开idea导入下载好的模块,配置好maven 会引入需要导入的spring jar包,新导入的项目配置文件是没有详细的配置的: 4.这里我们增加新的配置,如图: 配置好后,还需加入Eureka注解: 此注解标明该服务为E

Nginx FastCGI的运行原理

一.FastCGI 1.介绍 CGI全称通用网关接口 Commmon Gateway Interface 用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上. 传统CGI接口方式性能较差,由于每次HTTP服务器遇到动态程序需要重启解析器来执行解析,然后结果被返回给HTTP服务器.这在处理高并发时,几乎是不可能的,因此诞生了FastCGI.另外传统的CGI接口方式安全性也很差 一个可伸缩地.高速地在HTTP服务器和动态脚本语言间通信的接口 接口在linux下是socke

【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布

http://blog.csdn.net/allenlinrui/article/details/19419721 1.介绍 Nginx - 高性能web server,这个不用多说了,大家都知道. FastCGI程序 - 常驻型CGI程序,它是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能. Nginx要调用FastCGI程序,需要用到FastCGI进程管理程序(因为nginx不能直接执行外部的cgi程序,我们可使用lighttpd中的s