等待远程门时的免费资源(PHP,Apache,Nginx)

时间:2010-07-22 10:43:52

标签: php web-services apache high-load

我的php脚本等待远程门响应,通常持续约20秒。它导致apache httpd线程通过打开的MySQL连接存在于内存中,最终超过MaxClients值。如何管理以释放空闲资源,直到远程门响应。

一个解决方案是: 1)运行远程门请求,然后将用户重定向到刷新到某些url测试数据的页面, 2)在nginx配置文件中为该url编写规则: 如果存在特定文件 然后运行apache来提供数据 其他显示刷新页面。 3)远程门请求将数据保存在文件中

因此,我们将apache从对远程门请求的脚本中取消链接,我们可以尽可能地使其变小。远程请求时,服务器仅由该脚本使用,并且来自nginx的轻量请求。

所以这可能是一个很好的解决方案,但我想知道这种方法的缺点。并且可能有更好的方法。

1 个答案:

答案 0 :(得分:0)

好吧,您可以在等待远程门响应时关闭MySQL连接。

mysql_close($link);

然后在收到回复后重新打开它:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

如果您只在远程门响应之前或之后需要MySQL连接,我建议只在正确的位置建立一次MySQL连接。

一般来说mysql_connect()有点贵。 但与你的响应所需的20秒相比,这绝对是便宜的。