www.nginx.cnsitemap

存档

文章标签 ‘fastcgi’

nginx + fastcgi + c/c++

2016年7月18日 1 条评论

使用php写后端程序的例子很多,用c/c++的比较少。

本文采用nginx,spawn,fastcgi++来构建一个基于cgi的web程序。
由于fastcgi++依赖于boost库,我们先来装boost库

Linux下编译boost

1.编译前的准备工作

2.下载安装包并解压

编译安装

测试boost库是否可以使用,boost编译完成后运行程序报错,

最开始以为是bzip2没装上,折腾了许久也没搞定,最后我发现boost的官方文档写着gcc4.4.7,而我本地的编译器是4.4.6,之后我把gcc升级到4.8重新编译通过。

redhat6.3升级gcc4.8.0编译安装方法:

1.下载源码并解压

2.下载编译所需的依赖项

3.建立编译输出目录
mkdir gcc-build-4.8.0

4.进入此目录,执行以下命令,生成makefile文件

5.执行以下命令进行编译,编译时间比较长

6.安装
sudo make install

安装完成后查看版本

重新执行boost的编译,编写一个例子测试是否成功

编译运行

spawn-fcgi安装

fastcgi安装

启动fastcgi程序

如果启动报错,可以加参数-n来看具体原因。

我的报错如下,因为升级了gcc4.8,没有升级libstdc++.so.6导致。

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决

没有3.4.15

连接到libstdc++.so.6新的库

再次启动fastcgi程序

程序会在前台运行
检查程序是否正常运行

配置nginx,增加

重新加载ngnx的配置

打开浏览器,访问http://192.168.18.11/utf8-helloworld.fcgi,你会看到。
English: Hello World
Russian: Привет мир
Greek: Γεια σας κόσμο
Chinese: 世界您好
Japanese: 今日は世界
Runic English?: ᚺᛖᛚᛟ ᚹᛟᛉᛚᛞ

参考
http://www.cnblogs.com/skynet/p/4173450.html
http://www.cnblogs.com/wanghetao/p/3934350.html
http://www.nongnu.org/fastcgipp/doc/2.1/index.html

分类: c++, nginx 标签:

nginx+php-fpm出现502 bad gateway错误解决方法

2012年8月22日 8 条评论

502错误是所有用nginx跑php的运维人员不愿意看见的

nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。

服务器出现502的原因是连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错

因此如果你服务器并发量非常大,那只能先增加机器,然后按以下方式优化会取得更好效果;但如果你并发不大却出现502,一般都可以归结为配置问题,脚本超时问题。

1.php-fpm进程数不够用

使用 netstat -napo |grep "php-fpm" | wc -l 查看一下当前fastcgi进程个数,如果个数接近conf里配置的上限,就需要调高进程数。

但也不能无休止调高,可以根据服务器内存情况,可以把php-fpm子进程数调到100或以上,在4G内存的服务器上200就可以。

阅读全文...

分类: nginx 标签: , , , , ,