编写一个使用CGI技术的代理服务器的困惑。:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

编写一个使用CGI技术的代理服务器的困惑。:报错

kun坤 2020-06-09 15:26:08 80

大大们好。 小生近来一时兴起,想开发一个CGI程序。环境是一个局域网,局域网内部只有一台计算机可以连接到互联网(服务器),其他的都不行(为了防止打网络游戏等),但是局域网内的这些计算机互相之间都能访问。 于是就想到了开发一个网站,使用CGI程序来进行中转,最后可以提供一个WEB界面来变相地上网。要求也不是很高,就是网页的基本数据(图片/CSS文件/JS文件/html文件/xml文件)都能正常被那些不能上网的计算机获取到,以及能通过普通的http协议下载文件。 刚开始,我是使用perl来编写Apache的CGI脚本,但是因为测试发现,用perl写的CGI启动的时候很占用CPU性能,甚至超过了50%,感觉非常不适合多人用,于是就暂时放弃了。然后就是使用perl编写nginx的fast-cgi程序,但是又发现fastcgi程序下载文件的这一步占用的时间比较多,将下载的任务通过线程交出去后,Accept()一执行就把之前的fastcgi请求断掉了,而windows下的Async::FastCGI模块不知道为何无法编译成功。后来尝试了一下mod_perl,用sleep 10;测试好像和fastcgi一样是单线程的。最后为了启动速度又为了能多线程,只好拿起了C++和QT开始写CGI…… 简单来说,其实这个CGI就四个步骤:获取请求信息>下载文件>如果是html/css/js则分析链接并转化>输出转化后的结果。 对于编程方面,我虽然不是刚刚入门的新手,但很多东西都不懂,希望看完这个帖子的大大能指点下我,上面所描述的那些有没有欠缺考虑的地方?还有就是对于这个问题有没有更好的办法?

分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-09 19:15:03

    super proxy 或者 ccproxy 都很好######一年过去一大半了,看看这个年初刚入职时发的帖子,自己确实进步了一点。 现在这个程序已经实现了,是使用Python以及其Gevent库实现的,修改了里面的一个example,好像是webproxy.py。 并发下载的问题也没问题了,多人访问也没问题了,性能还很好。

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章