一些高并发下web服务器http异常状态码分析

本文通过对不同情况的分析,探讨了在高并发下web服务器可能出现的HTTP异常状态码,如502 Bad Gateway、504 Gateway Time-out和499,并详细解释了这些状态码产生的原因,以及相应的解决策略,包括调整超时设置、优化PHP脚本和增加php-cgi进程数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境说明

压测工具:apache/ab
web服务器:NGINX/1.8.0 + PHP 5.6.25

php脚本:get.php

注:

nignx 设置超时

fastcgi_connect_timeout 60
fastcgi_send_timeout 60
fastcgi_read_timeout 60

php-fpm 设置超时

request_terminate_timeout 10

压测开始

1.get.php源码

<?php
for ($i=0; $i < 50; $i++) { 
    # code...
    sleep(1);
}

2.使用ab模拟10个client对get.php并发请求100次

ab -c 10 -n 100 http://time-out.com/get.php

结果分析

情况一:每个php执行50s以上远大于超时时间(10s),fpm会自动发送kill信号(SIGTERM)给工作进程clild进程关闭。此时nginx与php-fpm的连接断开,nginx找不到对方,报502 Bad Gateway错误。

如图:fpm超时的处理 (php-fpm.conf)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值