Apache 限制每个 VHOST 的连接数

Apache 限制每个 VHOST 的连接数

我的 apache 限制了每个 vhost 的连接数。不确定这是否与此有关,但我正在使用 NameVirtualHost。

这是我的配置的一部分,我看不出它有什么问题:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

它对连接进行排队,以便每个请求都排成一个队列,从而使所有内容需要更长的时间来加载!

编辑:这是所有正在加载的模块

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

我认为这可能与其中一个模块有关,但我不知道!感谢大家的帮助或提示。

答案1

Apache 不限制每个虚拟主机的连接数,除非您使用额外的第三方模块。

发生的情况是您的 MPM 设置(如上所述)对使用进程(或线程)的最大数量或请求/连接有一个限制。

接下来要做什么取决于您使用的 MPM...一个基于线程,一个基于进程,PHP 的设置方式(作为单独的进程/cgi,还是作为 Apache 模块)等等。

http://httpd.apache.org/docs/2.2/mod/worker.html

http://httpd.apache.org/docs/2.2/mod/prefork.html

还可以尝试使用 KeepAlive 设置。

KeepAlive On
KeepAliveTimeout 1

答案2

mod_cband 可以做到这一点, http://codee.pl/cband.html

您会在虚拟主机中看到如下形式的行:

    # limit speed of this vhost to 10Mbit/s, 10 request/s, 30 open connections
    CBandSpeed 10Mbps 10 30

由于您试图确保它不会发生,所以可能不是这样,但这是需要寻找的事情。

答案3

我明白了,这是 PHP 而不是 apache!

相关内容