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库
./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 $@ 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;
}

最后在浏览器中输入

192.168.1.120是我虚拟机的地址

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

  1. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

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

    创业阶段,进一步实践了Linux环境搭建和维护,以下是一些经常使用软件的搭建步骤和參考资料,仅供自己和诸位參考. 我个人还是比較倾向"一站式Web开发"的.自己想做点事.须要太多的 ...

  3. RocketMQ(1)---架构原理及环境搭建

    一.架构简述 RocketMQ阿里开源的一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性, 万亿级容量和灵活的可伸缩性.跟其它中间件相比,RocketMQ的特点是纯JAVA实现,在发生宕机和 ...

  4. [ArcGIS]ArcGIS Server环境搭建,发布服务,以及使用ArcGIS API for JavaScript

    环境搭建 安装Web服务器 IIS 控制面板-程序-程序和功能-启用或关闭Windows功能,勾选以下 安装VisualStudio,选择包括ASP.NET模块 安装ArcGIS服务器 ArcGIS ...

  5. Nginx + FastCgi + Spawn-fcgi + c 的架构

    参考: nginx+c/c++ fastcgi:http://www.yis.me/web/2011/11/01/66.htm cgi探索之路:http://github.tiankonguse.co ...

  6. SVN server环境搭建

    VisualSVN server搭建: 1. 下载VisualSVN server for Windows安装包:https://www.visualsvn.com/ 2. 安装过程,基本就是下一步一 ...

  7. sprigcloud Eureka Server环境搭建

    1.搭建springcloud的Erueka组件,现在搭建这些套件已经变的很方便了,进入https://start.spring.io/页面,如下图: 2.选择好Eureka Server,点击Gen ...

  8. 【架构】docker环境搭建mysql主从

    序 本文主要研究怎么在docker上搭建mysql的主从.因为在单机搭建mysql多实例然后再配主从,感觉太痛苦了,环境各有不同,配置各不大相 同,从网上找搭建方法,试了半天也没成功,最后也没耐心调试 ...

  9. 基于nginx与zookeeper的API Gateway实现笔记 - 环境搭建

    为了简化操作,采用操作系统为CentOS 8. 首先需要编译出libzookeeper,在官网下载最新的zookeeper源码,或者github上clone一个,地址为:https://github. ...

随机推荐

  1. 用cesium本身添加水纹效果

    参考网站:https://blog.csdn.net/XLSMN/article/details/78752669 1.首先来看一下整体效果 2.具体方法如下: 首先,你必须有两张很重要的图片,你可以 ...

  2. MRC转ARC(2)

    春节前抽空花了一天的时间将手头的工程从MRC转成了ARC,然后陆陆续续地修复一部分因为转ARC引起的内存泄漏和崩溃,到目前为止工程也算是比较稳定了,抽空记上一笔.(虽说这种事情这辈子估计都只会做这么一 ...

  3. 笔试算法题(45):简介 - AC自动机(Aho-Corasick Automation)

    议题:AC自动机(Aho-Corasick Automation) 分析: 此算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一:一个常见的例子就是给定N个单词,给定包含M个字符的文章,要求 ...

  4. 【project】十次方-01

    前言 项目介绍 系统分为3大部分:微服务.网站前台.网站管理后台:功能模块分为:问答.招聘.交友中心等 该项目融合了Docker容器化部署.第三方登陆.SpringBoot.SpringCloud.S ...

  5. Linux中搭建FTP服务器

    FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...

  6. http主要请求头

    一.内容协商 1.Accept:希望服务器返回的数据格式,如下面的:text/javascript, application/javascript, application/ecmascript, a ...

  7. PHP 反射API

    出处:http://blog.csdn.net/hguisu/article/details/7357421 PHP5添加了一项新的功能:Reflection.这个功能使得phper可以reverse ...

  8. Anaconda换源及常用命令

    推荐一篇文章:http://www.cnblogs.com/IT-LearnHall/p/9486029.html 另外,记录几个自己遇到的问题 首先是换源.无论是安装包还是安装后更新python包, ...

  9. orcad中的快捷键

    在画原理图的时候,不能正常的将将要放下的器件与旁边的对其,一种解决办法是按F6,调出大的水平竖直线,在按F6,此线标消失. Ctrl+F8是全屏模式,关闭的方法暂时不知道,退出方式是点击按钮. F10 ...

  10. 62. mybatis 使用PageHelper不生效【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 在Spirng Boot中集成了PageHelper,然后也在需要使用分页的地方加入了如下代码: PageHelper.startPage(1,1 ...