对许多同时“获取”请求将导致500错误

时间:2019-04-28 09:17:12

标签: php wordpress nginx apache2

im使用apache2和nginx作为wordpress网站的代理。我有一个插件,用户可以在其中获得自己的网址并可以下载文件。

问题:

有时80多个用户同时请求URL,这将导致500错误。当它的arround 30-40同时请求200个代码时,它似乎可以工作。

带有错误的日志文件示例:

IP - - [28/Apr/2019:01:00:31 +0200] "GET /test/test.zip HTTP/1.0" 500 512 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0"

我有一个8GB的VPS,并将php.ini的内存限制设置为1024,并且还尝试增加apache2配置中的超时限制。我错过了什么设置?

这是apache2的配置

<IfModule mpm_prefork_module>
StartServers          8
MinSpareServers       5
MaxSpareServers      20
ServerLimit         400
MaxClients          400
MaxRequestsPerChild 4000

Timeout 60
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 10
ServerSignature Off
ServerTokens Prod

1 个答案:

答案 0 :(得分:1)

@Magnus是对的。如果没有要跟踪的日志文件,这很可能是一个疯狂的猜测。

我确实意识到可能会有帮助。如前所述,您正在运行Nginx作为Apache的代理。因此,也许不应该考虑Apache,而应该考虑Nginx。您将可以在:

中找到Nginx代理参数。
/etc/nginx/proxy_params

在文件中,您将找到一些标准的代理参数,如下所示:

client_max_body_size 100M; client_body_buffer_size 1m; proxy_intercept_errors on; proxy_buffering on; proxy_buffer_size 128k; proxy_buffers 256 16k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; proxy_max_temp_file_size 0; proxy_read_timeout 300;

尝试增加设置中的限制。您将可以从Nginx documentation本身中找到它们的含义。

希望有帮助!

*记住要重新加载/重新启动服务。