有时,当我的网站流量较大时,服务器会随机停止执行任何操作并在几秒钟甚至几分钟内发送 500/503 错误。
每当有人尝试打开网站并收到 500/503 错误时,错误日志都会显示以下消息:
mod_fcgid: 无法为 /var/www/cgi-bin/cgi_wrapper/cgi_wrapper 申请进程槽
mod_fcgid 配置:
<IfModule mod_fcgid.c>
FcgidMaxRequestLen 67108864
<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>
FcgidIPCDir /var/lib/apache2/fcgid/sock
FcgidProcessTableFile /var/lib/apache2/fcgid/shm
FcgidIdleTimeout 40
FcgidProcessLifeTime 30
FcgidMaxProcesses 20
FcgidMaxProcessesPerClass 8
FcgidMinProcessesPerClass 0
FcgidConnectTimeout 30
FcgidIOTimeout 45
FcgidInitialEnv RAILS_ENV production
FcgidIdleScanInterval 10
</IfModule>
答案1
我建议您增加可用进程数。您目前将其设置为 20。我建议将其至少增加到 50。
您可以在此处获取有关 FcgidMaxProcesses 指令的更多信息:
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxprocesses