nginx+fastcgi+c/cpp
2015-09-23 20:09
519 查看
参考:http://github.tiankonguse.com/blog/2015/01/19/cgi-nginx-three/
跟着做了一遍,然后根据记忆写的,不清楚有没错漏步骤,希望多多评论多多交流。。。
搭建环境
注意发现碰钉可以看看相应程序内的README
安装:nginx、spawn-fcgi、fastcgi、fcgiwrap
nginx
fastcgi
安装fastcgi的时候报EOF错误可以在include/fcgio.h中包含头文件cstdio
spawn-fcgi
fcgiwrap
配置环境
配置nginx
整个文件改成这样
配置hosts
追加
配置库文件链接
测试cgi
编写cgi程序编译后将可执行程序放在相应目录(如/home/zebin/nginx/cgi-bin/demo)
demo.cpp
编译:g++ demo.cpp -lfcgi -o demo
加载fcgi-application
浏览器访问 nextbin.com/cgi-bin/demo 都成功
=========小结[b]=========[/b]
一些用得上的命令
折腾了一天终于搭建好了。之前只试过LNMP。
1. 还没用上数据库,有待补充
2. 对spawn-fcgi、fcgiwrap、fastcgi的关系不清晰,有待理解
3. 对信息传输交互没接触,有待构建
跟着做了一遍,然后根据记忆写的,不清楚有没错漏步骤,希望多多评论多多交流。。。
搭建环境
注意发现碰钉可以看看相应程序内的README
安装:nginx、spawn-fcgi、fastcgi、fcgiwrap
nginx
sudo apt-get install nginx-full
fastcgi
安装fastcgi的时候报EOF错误可以在include/fcgio.h中包含头文件cstdio
wget http://www.fastcgi.com/dist/fcgi.tar.gz tar -zxvf fcgi.tar.gz ./configure make sudo make install
spawn-fcgi
git clone https://github.com/lighttpd/spawn-fcgi.git sudo apt-get install autoconf autoreconf -i ./autogen.sh ./configure make sudo make install
fcgiwrap
git clone https://github.com/gnosek/fcgiwrap.git autoreconf -i ./configure make sudo make install
配置环境
配置nginx
vim /etc/nginx/sites-enabled/default
整个文件改成这样
server { listen 80 ; server_name nextbin.com; location / { root /home/zebin/nginx/htdoc/; index index.html index.htm; try_files $uri $uri/ =404; } location ~ ^/cgi-bin/.*$ { #cgi path: /home/zebin/nginx/cgi-bin/ root /home/zebin/nginx/; fastcgi_pass 127.0.0.1:9000; #configure path: /etc/nginx/fastcgi.conf #include fastcgi.conf; include fastcgi_params; } }
配置hosts
vim /etc/hosts
追加
127.0.0.1 nextbin.com
配置库文件链接
sudo ln -s /usr/local/lib/libfcgi.so.0.0.0 /usr/local/lib/libfcgi.so.0 sudo ln -s /usr/local/lib/libfcgi.so.0.0.0 /usr/lib/libfcgi.so.0 sudo mkdir /usr/lib64 sudo ln -s /usr/local/lib/libfcgi.so.0.0.0 /usr/lib64/libfcgi.so.0
测试cgi
编写cgi程序编译后将可执行程序放在相应目录(如/home/zebin/nginx/cgi-bin/demo)
#include "fcgi_stdio.h" #include <stdlib.h> int main(int argc, char* argv[]){ int count = 0; while (FCGI_Accept() >= 0){ printf("Content-type: text/html\r\n" "\r\n" "<title>FastCGI Hello!</title>" "<h1>FastCGI Hello!</h1>" "Request number %d running on host <i>%s</i>\n", ++count, getenv("SERVER_NAME")); } return 0; }
demo.cpp
编译:g++ demo.cpp -lfcgi -o demo
加载fcgi-application
spawn-fcgi -p 9000 -C 10 -f /usr/local/sbin/fcgiwrap
浏览器访问 nextbin.com/cgi-bin/demo 都成功
=========小结[b]=========[/b]
一些用得上的命令
ps -aux | grep cgi nginx -t ln --help
折腾了一天终于搭建好了。之前只试过LNMP。
1. 还没用上数据库,有待补充
2. 对spawn-fcgi、fcgiwrap、fastcgi的关系不清晰,有待理解
3. 对信息传输交互没接触,有待构建
相关文章推荐
- 隐藏nginx版本号,以加强服务安全
- 用GoAccess来分析Nginx日志
- 关于部署StartCom免费证书,FireFox不信任的问题
- Nginx: error while loading shared libraries: libpcre.so.1
- 通过修改配置真正解决php文件上传大小限制问题(nginx+php)
- sentos nginx安装
- nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- 强大的负载均衡+静态文件WEB服务器nginx实战
- nginx中配置pathinfo模式示例
- rails 部署 nginx + passenger
- Nginx和Apache共存环境下apache获得真实IP
- nginx 502排错
- nginx + passenger 出现 Cannot stat .../config.ru': Permission denied 的错误的解决办法
- nginx解析php请求为404
- 最完美解决Nginx部署ThinkPHP项目的办法
- LNMP实现(CentOS7+Nginx-1.9.4+PHP-5.6+MySQL-5.6.26)
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
- Nginx的负载均衡的那点事 (转)
- nginx event 模块解析
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案