这是一个由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 }