日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

nginx+fastcgi+c/c++搭建高性能Web框架

發布時間:2025/4/5 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx+fastcgi+c/c++搭建高性能Web框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


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,sudo apt-get install pcre安裝?;蛘呷?#xff1a;http://www.pcre.org/
如果缺少OpenSSL,sudo apt-get install libssl-dev,或者去:http://www.openssl.org
如果缺少zlib,可以apt-get install zlib1g,或者http://www.zlib.net/
配置請參考:http://wiki.codemongers.com/NginxChsInstall 可以選擇安裝模塊
make & make install
默認安裝在/usr/local/nginx下
1.2.管理
執行選項
-c </path/to/config> 為 Nginx 指定一個配置文件,來代替缺省的。
-t 不運行,而僅僅測試配置文件。nginx 將檢查配置文件的語法的正確性,并嘗試打開配置文件中所引用到的文件。
-v 顯示 nginx 的版本。
-V 顯示 nginx 的版本,編譯器版本和配置參數。
檢查配置文件
$ sudo nginx -t
2008/03/12 19:15:11 info 12384#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
2008/03/12 19:15:11 info 12384#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully
啟動
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
查看nginx主進程號
$ ps -ef | grep "nginx: master process"

| grep -v "grep"


| awk -F ' ' '{print $2}


26010
重新加載配置文件
$sudo kill -HUP 26010
通過系統的信號控制 Nginx
可以使用信號系統來控制主進程。默認,nginx 將其主進程的 pid 寫入到 /usr/local/nginx/logs/nginx.pid 文件中。通過傳遞參數給 ./configure 或使用 pid 指令,來改變該文件的位置。
主進程可以處理以下的信號:

命令 說明 備注
TERM, INT 快速關閉
QUIT 從容關閉
HUP 重載配置 用新的配置開始新的工作進程 從容關閉舊的工作進程
USR1 重新打開日志文件
USR2 平滑升級可執行程序
WINCH 從容關閉工作進程
默認目錄
主目錄:/usr/local/nginx/
配置目錄:/usr/local/nginx/conf/
root目錄:/usr/local/nginx/html/
可執行文件路徑:/usr/local/nginx/sbin/
2.FastCGI
2.1.安裝lighttpd的spawn-fastcgi
下載http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz

./configure
make
cp ./src/spawn-fcgi /usr/local/nginx/sbin/
2.2.安裝fastcgi庫
下載http://www.fastcgi.com/dist/fcgi.tar.gz

./configure
make
make install
2.3.Hello world
#include <iostream>
#include <fcgi_stdio.h>

using namespace std;

int main()
{

/* Initialization Code */
int count = 0;


/* Start of response loop */
while (FCGI_Accept() >= 0)
{
//* body of response loop /*/
printf("Content-type: text/html/r/n"
"/r/n"
""
"FastCGI Hello/! (C, fcgi_stdio library)"
"Request number %d running on host %s "
"Process ID: %d/n",
/++count,
getenv("SERVER_NAME"), getpid());
}

?


/* End of response loop */
return 0;


}
編譯后為FastCGISameple

2.4.啟動Spawn-cgi
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 25 -u www -f /usr/local/nginx/fcgi/FactCGISample
2.5.修改Nginx配置文件
vi /usr/local/nginx/conf/nginx.conf

location ~ /.cgi$

{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
別忘了,重新加載配置文件

$sudo kill -HUP 26010
打開瀏覽器,輸入http://localhost/1.cgi ,就顯示

FastCGI Hello! (C, fcgi_stdio library)Request number 1 running on host localhost Process

?


ID: 25473
3.webbench壓力測試工具
下載:http://home.tiscali.cz:8080/~cz210552/distfiles/webbench-1.5.tar.gz

安裝:

tar zxvf webbench-1.5.tar.gz
cd webbench-1.5


make && make install
使用:

webbench -c 500 -t 30 http://127.0.0.1/test.jpg

?


500是并發連接數,30是時間單位是秒

?

用ab測試的結果,在我的虛擬機上,看起來性能很不錯

(Apache Bench是Apache自帶的工具包)

?

ab -n 10000 -c 100 http://127.0.0.1/1.cgi
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software: nginx/0.7.38
Server Hostname: 127.0.0.1
Server Port: 80

Document Path: /1.cgi
Document Length: 143 bytes

Concurrency Level: 100
Time taken for tests: 3.982 seconds
Complete requests: 10000
Failed requests: 8399
(Connect: 0, Receive: 0, Length: 8399, Exceptions: 0)
Write errors: 0
Total transferred: 2658399 bytes
HTML transferred: 1438399 bytes
Requests per second: 2511.06 [#/sec] (mean)
Time per request: 39.824 [ms] (mean)
Time per request: 0.398 [ms] (mean, across all concurrent requests)
Transfer rate: 651.89 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.6 0 51
Processing: 22 39 6.8 36 93
Waiting: 4 39 6.8 36 93
Total: 24 39 8.2 36 97

Percentage of the requests served within a certain time (ms)
50% 36
66% 39
75% 41
80% 42
90% 48
95% 54
98% 70
99% 84
100% 97 (longest request)

4.Nginx模塊
模塊列表
http://wiki.codemongers.com/NginxModules

FastCGI模塊源碼:nginx/src/http/modules/ngx_http_fastcgi_module.c

轉載于:https://blog.51cto.com/flandycheng/858946

總結

以上是生活随笔為你收集整理的nginx+fastcgi+c/c++搭建高性能Web框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。