September 20, 2012 分类: ASM/C/C++     作者: hoverlees     留言: 发表

这是一个由C和lua实现的HTTP代理服务器,运行在linux下,服务器使用EPOLL事件模型处理网络流,性能还不错,本人已经使用它代理firefox上网一段时间了,能稳定运行。

如要应用在大并发量的场合,需要在启动程序前设置ulimit为一个合适的值,否则服务器在并发量达到限定值时直接关闭连接,出现连接重置的情况。

代理服务器实现了lua宿主,lua主要用于配置服务器的监听IP和端口,同时处理请求回调,可以通过对请求地址、请求主体内容、请求方式进行判断以决定是否接受该代理。

lua脚本文件名为config.lua,下面是一个示例配置:

--[[
HTTP代理服务器配置文件
@author Hoverlees  http://www.hoverlees.com/blog/?p=1337
]]

--变量名必须为proxy_config
proxy_config={
	--监听IP
	listen="0.0.0.0",
	--监听端口
	port=8766,
	on_request=function(request)
		--[[
		当收到请求后的回调函数 request为一个表格,包含内容:
		1. requestURI  请求地址
		2. requestMethod 请求方式
		3. requestBody 请求体
		4. 请求的HTTP头,如Host,Content-Type,Connection等.
		返回true表示允许代理,返回false表示不允许代理.
		]]
		print("代理:"..request.requestURI)
		return true;
	end
}

从这里下载 HTTP代理服务器 源码

我来留个言

您的电子邮箱我一定会保密的哦!

昵称

邮箱

评论内容