在LAMP堆栈上,如何限制并发连接的数量并为那些超出限制的用户提供一个静态页面?

我知道Apache指令MaxClientsListenBacklog 。 我试图设置一个限制,假设100个并发连接之后,新的连接将被提供静态页面。 可以这样做吗? MaxClientsListenBacklog应该高于还是低于这个限制? 我如何testing它?

如果Apache无法接受传入的连接,因为它已经处理了MaxClients,那么它不能提供静态页面。 所以,我没有任何确凿的证据,但是我不知道如何用Apache来实现这个目标。 如果Apache返回一个连接失败,你可能可以把一些东西放在Apache的前面,如果返回一个静态页面,但是对我来说这看起来像是一个复杂的configuration。 希望有人会一起certificate我错了。

下面是我做的:假设我想允许X个并发请求,之后的下列Y个并发请求将保留在一个队列中,等待第一个X完成,超过X + Y的所有内容都将被提供静态页面:

  1. httpd.conf ,必须设置以下指令:

     MaxClients X ServerLimit X ListenBacklog Y 
  2. 在MySQL中以root身份login,设置max_connections

     set global max_connections = X 
  3. 编辑您的服务器的公共根文件夹中的.htaccess文件:

     ErrorDocument 503 error_503.html 
  4. 确保您的error_503.html在一个请求中提供。 所有的样式表和脚本都必须在这个文件中。 如果你想包括图像,你将不得不使用数据urischeme 。 此外,你将不得不切片你的图像,因为在IE数据的URI必须小于32KiB。