转载请注明原作者
安装nginx###
最近要搭http服务器,经过谷歌和请教高手,决定选择nginx,在window上搭建nginx,网上一大堆,都挺好使的,我参照的是:(原)nginx+FastCGI+c++。nginx安装后,启动的时候遇到了这个为问题:Win7下Nginx启动失败,80端口被占用然后在Win7下Nginx启动失败,80端口被占用找到了解决方法。
现在要说道问题的重点了,因为我是要用C++来处理前端的request,在网上找了下,大部分都是关于PHP的,有用C++的,也写的不是很清楚,我就继续谷歌,发现了一个老外的blog How to run fastcgi and nginx on windows,与我的需求很匹配,说的就是我需要解决的问题。具体参照过程中也遇到一些问题, 大概记录了下,现整理如下:
1. 下载了patch-2.5.9-7-bin.zip
在使用立马说的patch工具时出现了问题,发现不能用,然后下载了patch-2.5.9-7-bin.zip,注意window下使用exe文件需要加绝对路径的。然后执行bin目录下的可执行文件。
2. 下载fcgi.tar.gz
解压后,需要重新编译生成二个文件libfcgi.dll和libfcgi.lib。但是因为fcgi.tar.gz包中window相关的太老了,还是支持VC6,我们现在都是VS2010,或者更高的版本,直接打开,根本不行。这个时候就要用到patch工具了,网上有相关的patch,分别是:
1-align-x64.patch
2-socklen.patch
3-gcc44.patch
4-vc9.patch
5-build-warnings.patch
用patch去执行这5个文件,然后就可以支持VS2010了,这样就可以去生成libfcgi.dll和libfcgi.lib文件了
3. 把libfcgi.dll文件拷贝到C:\nginx-1.8.0
需要把libfcgi.dll文件拷贝到C:\nginx-1.8.0,准确的说应该是与spawn-fcgi.exe同一个目录下,因为我的spawn-fcgi.exe是放在C:\nginx-1.8.0,所以我的libfcgi.dll也是放在C:\nginx-1.8.0
4. 重启nginx
最后执行的时候,发现既然不成功,后面想了一下,应该是我改了nginx.conf,却没有重启nginx导致的,后面执行nginx -s reload,就可以了
备注###
1. nginx用到的命令整理:
start nginx 启动Nginx服务器
nginx -s stop // 停止nginx
nginx -s reload // 重新加载配置文件
nginx -s quit // 退出nginx
**2. spawn-fcgi.exe命令:### **
spawn-fcgi.exe -f ./cgi-bin/echo-cpp.exe -a 127.0.0.1 -p 8089
3. 查看进程:
tasklist | findstr "imagename eq nginx.exe" //列出nginx.exe进程
tasklist | findstr “PID号”
netstat -ano | findstr "8081" //找到8081端口的进程的PID
网友评论