3

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

4

2 回答 2

1

如果可以把 nginx 放在 apache 前面,可以试试这个 nginx 模块https://github.com/cfsego/nginx-limit-upstream。它限制到 apache 的连接数并将其他连接放置到队列中。这不完全是您正在寻找的东西,但是,我认为,可以修改模块以呈现静态页面,而不是放置到队列中。

于 2012-06-16T13:57:55.197 回答
1

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

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

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

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

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

于 2012-06-23T17:21:08.763 回答