本人使用的是Ubuntu系统
1、安装nginx服务器
http://nginx.org/download/nginx-1.9.2.tar.gz tar -zvxf nginx-1.9.2.tar.gz cd nginx ./configure make && make install
默认安装路径:/usr/local/nginx
nginx简单配置:/usr/local/nginx/conf/nginx.conf
#user nobody; worker_processes 4; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 90; #gzip on; server { listen 192.168.88.134:8080; //修改成自己的ip地址跟端口 server_name 192.168.88.134; #charset koi8-r; access_log logs/host.access.log main; location / { root html; index index.html index.htm index.php; #autoindex on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9999; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } location ~ \.cgi$ { root html; fastcgi_pass 127.0.0.1:7000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } }启动nginx:/usr/local/nginx/sbin/nginx
关闭nginx:kill `ps aux|grep nginx|sed -n '1p'| awk '{print $2}'`
2、安装spawn-fcgi
apt-get install apawn-fcgi3、安装fast-cgi
wget http://www.fastcgi.com/dist/fcgi.tar.gz tar -xvzf <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">fcgi.tar.gz</span>
此时不能编译安装 cd fcgi-2.4.1/include 打开fcgio.h 添加#include <stdio.h> ./configure make && make install</stdio.h>
cp./src/spawn-fcgi/usr/local/nginx/sbin/
cp/usr/local/lib/libfcgi.so.0 /usr/lib
每个人安装的目录未必一致,请自行搜索按安装的目录进行 拷贝修改
4、编写cgi程序
#include <fcgi_stdio.h> #include <iostream> using namespace std; 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 C\n" ); } return 0; } </iostream></fcgi_stdio.h>编译:
g++ -o test.cgi test.cpp -L /usr/local/lib/ -lfcgi将test.cgi 拷贝到/usr/local/nginx/html/ 下
启动spqwn-fcgi程序
spawn-fcgi -a 127.0.0.1 -p 7000 -u nobody -f ./test.cgi在nginx.conf 添加
location ~ \.cgi$ { root html; fastcgi_pass 127.0.0.1:7000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
打开浏览器输入:http://192.168.88.134:8080/test.cgi
打印出:Hello world in C
文章参考:
http://wiki.ubuntu.org.cn/Nginx
http://blog.chinaunix.net/uid-30030431-id-4669581.html
http://terry831010.blog.163.com/blog/static/6916117120126185428827/
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了nginx服务器下编写cgi程序,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

负载均衡会影响会话管理,但可以通过会话复制、会话粘性和集中式会话存储解决。1.会话复制在服务器间复制会话数据。2.会话粘性将用户请求定向到同一服务器。3.集中式会话存储使用独立服务器如Redis存储会话数据,确保数据共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP会话的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。1.Cookies通过在客户端存储数据来管理会话,简单但安全性低。2.Token-basedAuthentication使用令牌验证用户,安全性高但需额外逻辑。3.Database-basedSessions将数据存储在数据库中,扩展性好但可能影响性能。4.Redis/Memcached使用分布式缓存提高性能和扩展性,但需额外配

Sessionhijacking是指攻击者通过获取用户的sessionID来冒充用户。防范方法包括:1)使用HTTPS加密通信;2)验证sessionID的来源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比较了PHP和ASP.NET,重点是它们对大规模Web应用程序,性能差异和安全功能的适用性。两者对于大型项目都是可行的,但是PHP是开源和无关的,而ASP.NET,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具