Open GoogleCodeExporter opened 8 years ago
呵呵,感谢你的建议。
实际上,在项目主页的预告中就有支持HTTP/socks5代理的功能(
还能支持NTLM认证),只不过最近其他事情有点多暂时还没有�
��成这一部分。
对了,有没有兴趣加入这个项目一起开发?
Original comment by lehui99
on 18 Aug 2011 at 4:27
有心无力啊,没那个技术。
php表示完全不行,只能是看到优秀项目就来观望支持一下。
http://code.google.com/p/goagent/
话说goagent项目也开始在支持ntlm代理了。。
Original comment by zhag...@gmail.com
on 19 Aug 2011 at 7:31
其实支持代理功能只需要改Java客户端就可以了,不需要改php�
��
看你给出的代码应该和实际需要修改的代码差不多,不知道��
�会不会Java?
Original comment by lehui99
on 19 Aug 2011 at 10:08
能看懂几行代码,多了就无力,不懂技术就是比较杯具啊。
运行时在java后面加上参数貌似就能走http代理了:
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8080
另外,不知是不是原理上是操作数据库的原因,
我这测试貌似phpsocks5很容易触动主机空间的保护机制似的,
好像用一会就不太稳定了,只能删除数据库的那几个表,重��
�建一次。
有可能是本机ip被拒绝连接。
Original comment by zhag...@gmail.com
on 20 Aug 2011 at 1:29
从1.5开始,http和https要分别设置代理,还要加上
-Dhttps.proxyHost=localhost -Dhttps.proxyPort=8080
不稳定的时候,能否把log(客户端和服务器端的)发上来分��
�一下?
Original comment by lehui99
on 20 Aug 2011 at 6:08
[deleted comment]
[deleted comment]
选择国内不被墙的网站baidu和ip123测试,顺利打开并看到ip123显示了php主机的IP,
之后如果再打开个有图片的如推特或者淘宝就不行了,再打��
�ip123已经打不开了。
反复测了几次,基本就是开始成功一会,后来就会http返回码500或者502。
这时用我的ip已经无法浏览器访问我建的php空间首页了,挂上
一个国内代理又可以打开,说明不是被墙而只是拒绝我的ip访
问。
而且这时用java -Dhttp.proxyHost挂代理,phpsocks5又可以使用。说明确实是ip被拒绝。
或许是phpsocks5访问socks5.php过于频繁,或者操作数据库过于频繁吧。好像是触发了主机的保护机制然后被拒绝访问。选择付费空间估计能解决,但这样通用性大打折扣了。
Original comment by zhag...@gmail.com
on 20 Aug 2011 at 1:01
Attachments:
另外测试时打了sp1补丁。。
Original comment by zhag...@gmail.com
on 20 Aug 2011 at 1:15
看了一下log,服务器500错很多都是因为不支持set_time_limit操作
。
因为socks5协议需要在一个TCP连接内持续读取数据直到连接关��
�,有时候这个TCP连接存在的时间会比较长(比如下载一个100M
B的文件,可能1个TCP连接要持续10 -
20分钟,这样才能下载完成一个100MB的文件)。
但是,PHP默认规定一次HTTP请求30秒内没有结束,就会强制终��
�这次请求,这个限制可以通过调用set_time_limit进行更改。set_t
ime_limit(n)设置了在执行了set_time_limit后的n秒内不会强行终止��
�次HTTP请求(比如本次HTTP请求已经执行了15秒,调用set_time_lim
it(30)后还要经过30秒才会被强制终止,等于把强制终止的时间
推迟了15秒)。如果不断调用set_time_limit(n),那么可以不断延�
��本次HTTP请求被强制终止的时间,这样就可以延长HTTP请求被�
��制终止的时间。
然而,你的PHP空间禁止了调用set_time_limit,导致调用set_time_lim
it时出错。可以暂时去除调用set_time_limit的地方再次测试看看�
��会不会有问题。
可以在php文件中的第98行和第307行找到set_time_limit的调用,在9
8行和第307行的行首加上注释符(注释符为双斜杠://)使得��
�执行set_time_limit。改好PHP后重新上传到服务器上。
去除set_time_limit后,如果TCP连接超过30秒(比如下载大文件,�
��HTTP的长连接。HTTP的长连接通常被用于访问同一个域名下多�
��资源复用TCP连接)就会被强制断开连接。
Original comment by lehui99
on 20 Aug 2011 at 3:20
辗转测试了多次,也换了好几个空间。现在一一汇报下结果。
前面用的免费空间realservers.info,不支持set_time_limit,
你上面讲的完全符合这个空间的情况,而且我访问.php建表的�
��候的确就提示了set_time_limit,但是因为建表成功,又能用,�
��忘了这个提示。现在一想的确是这样。
但是还是有些难以判断是否是主要原因,去掉调用set_time_limit后有改善,但是开几个网页后还是被禁IP,挂代理情况依旧。
这个主机有一个现象就是ftp连接有时都会停滞,比如在ftp删除一个文件,有时卡在那
这时立刻断开ftp连接,重连后马上恢复。
而phpsocks5代理时我说的不稳定,就类似这样,网页是停滞的。
既打不开,也不报502 drop
connection,而是在刷新似的。但是关掉phpsocks5重新打开,还是�
��样。
发现服务器日志文件都似乎比较大,开几个网页就会产生4到6M。
在服务器上产生这样的日志会不会对主机服务器造成压力,��
�发它的保护机制什么的呢?
虽然觉得不稳定问题完全在于这个空间的某些限制什么的,不过要是phpsocks5也能针对这类空间优化下连接什么的就好了,可以提高通用性。毕竟很难期待大部分用户有能力和耐心申请多个空间并部署测试。
这是探针:http://zhagen2.realservers.info/phptanzhen.php.php
从探针上看有一些禁用的函数。
不过该空间测试似乎能够运行apjp。
这是日志
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 4:48
Attachments:
还有一个空间,已经被墙,也类似上面,不过用探针查set_time_limit函数未被禁用,
日志也没有报这个warning。
java -Dhttp.proxyHost挂代理开几个网页成功,后来打不开新的网页,
然后首页浏览器访问都会提示出错,提示Internal Server Error。
用ftp还有一个现象,服务器日志phpsocks5_log似乎一直在产生,删掉了还有。有点奇怪。
不过这也完全不具有普遍性,也可能只是空间个例。这个空间反馈基本可以忽略,仅供参考。
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 4:51
另外测试了这个空间Primegalactic.
phpsocks5完美运行,日志也有很多返回码500,但确实正常运行,无论是用本地ip还是java -Dhttp.proxyHost挂代理都好用。
可以推荐给广大一般用户使用,
希望这种免费空间能一直运营下去吧。日志有20M就不传了。
探针http://174.136.63.6/~zhagenco/phptanzhen.php.php
从探针上看没有禁用的函数,也不知能否总结出这类空间的规律。
标题这个FreeWebHostingArea现在发现好像上传php探针就会被禁用账户,而且不是人工而是自动被禁用,很奇怪。不建议其他用户注册,也没有再用作测试。
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 4:56
首先,服务器端的log文件是用来调试的,调试完成之后就可��
�把服务器端的log关掉,具体做法参考首页(
https://code.google.com/p/phpsocks5/ )中的一句话:
建议在调试成功后手动将php中的debuginfo参数设置为False,并删
除服务器端的log文件。debuginfo参数的具体意义可以参考Wiki页�
��的parameter_list页。
apjp好像没有使用set_time_limit,所以下载大文件好像会有问题��
�
log文件我再看看,优化空间有一些,不过可能余地不大。
看了log后我再来反馈。
Original comment by lehui99
on 21 Aug 2011 at 5:18
下载大文件是会有问题,而且apjp和同类程序,似乎在代理调度转换端口时,
polipo,privoxy,3proxy,proxy
switcher方式,其中总分别有一到几种方式是不支持的。
realservers.info我再争取找几个国内国外代理挂上测下,整理下发一两个log上来供补充参考。
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 7:57
分析了一下log,发现很多时候由于到达了mysql的最大连接数导
致php部分不能正常工作。http://zhagen2.realservers.info/phptanzhen.php.
php 这个空间的mysql最大连接数是多少?
由于php部分为了加快连接mysql,使用了mysql的持久连接mysql_pcon
nect,这样mysql连接一直不会释放,这样下一个http请求就可以�
��用上一个http请求的mysql连接而不必重新连接到mysql。不过这�
��也稍微加大了一些mysql的连接数。
尝试一下把php部分的mysql_pconnect改为mysql_connect(有很多地方��
�了mysql_pconnect,需要用文本编辑器查找替换一下,把所有mysql
_pconnect的地方替换为mysql_connect),再试试看还有没有问题?�
��后能否再帮忙上传一下服务器和客户端的log?谢谢!
Original comment by lehui99
on 21 Aug 2011 at 8:19
mysql_pconnect改为mysql_connect明显稳定时间有加长,
但用一阵子仍然会被拒绝连接。
换了一个可以测试mysql数据库的探针测试
这个探针是完美运行空间的
http://174.136.63.6/~zhagenco/config8nm.php
MySQL数据库持续连接 支持
POST最大字节数 100M
允许最大上传文件 150M
这个是不稳定空间上运行探针
http://zhagen2.realservers.info/config8nm.php
MySQL数据库持续连接 不支持
POST最大字节数 2M
允许最大上传文件 2M
MySQL最大连接数探针上面都显示无限,但估计有误,
付费主机貌似都有限制在50到500的样子。
这是log
(依次成功访问10来个网页之后被拒绝连接)
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 11:29
Attachments:
这是另一次
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 11:30
Attachments:
这是被拒绝连接后重启phpsocks5的这种情形的log。
基本是无连接
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 11:32
Attachments:
看了一下xxx3.rar和xxx4.rar的log,发现xxx3中你是用本地的privoxy��
�理的java客户端?而且set_time_limit好像又打开了,又看到很多s
et_time_limit被禁止的错误。
还有就是发现mysql的最大连接数最后还是超过了,虽然超过的
时间比使用mysql_pconnect延后了。
最后就是发现似乎mysql超过了最大连接数之后,再去访问php的
话,服务器会直接关闭连接,连http头都不会返回。规律似乎�
��一旦超过了mysql的最大连接数,那么最近访问最多的那个IP��
�会被服务器列入黑名单禁止访问一段时间。
Original comment by lehui99
on 21 Aug 2011 at 12:01
本地privoxy是为了把SSH代理转换为http类型,方便代理java客户��
�。
恰好跟phpsocks5里的polipo一样,:-D
因为此时本地IP被禁止。改的时候一不注意用了之前的老版本
所以set_time_limit又打开了。
重新关闭了set_time_limit现在。
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 1:10
Attachments:
还是因为mysql超过了最大连接数。
而且这个mysql连接数已经没有优化的余地了,访问一个网页需
要有3个mysql链接。
如果不用mysql,又只能做到类似apjp那样,https就必须伪造证书
了。
Original comment by lehui99
on 21 Aug 2011 at 1:16
恩,这个空间个例确实把mysql连接数限制得过于严格了,相信
这样吝啬的空间也不会很多,或许主机里什么地方可以修改��
�大连接数也不一定,不过目前还不太了解。免费空间不少,�
��武之地很多。真是了解了不少,感谢!
Original comment by zhag...@gmail.com
on 21 Aug 2011 at 1:34
不客气。 ^_^
Original comment by lehui99
on 21 Aug 2011 at 1:41
FreeWebHostingArea可以传探针,我的探针放了很久也没有问题http:
//bbstry.orgfree.com/tz.php
realservers.info的空间是main—hosting,或者说是youhosting的空间,�
��系列空间都不行,而想这种10G、100G流量的空间基本都��
�他的,所以这种空间是不行的,很多cpanel空间都差不多是这�
��的,还有一种cpanel空间我找时间测试一下,vista
panel空间我也测试一下,估计成功可能性不大
Original comment by yubinlov...@gmail.com
on 24 Dec 2011 at 5:43
恩,谢谢楼上,了解了不少。有阵子没来了
Original comment by zhag...@gmail.com
on 25 Dec 2011 at 1:05
Original issue reported on code.google.com by
zhag...@gmail.com
on 18 Aug 2011 at 1:25