游戏后端代码采用Nginx+PHP-FPM的方式部署。放问游戏的时候偶尔会出现502错误。
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 10.04配置 nginx + php-fpm 模式
Nginx错误日志出现以下日志
2014/07/05 17:20:58 [error] 18431#0: *148739 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.56, server: , request: "POST /gateway.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: ""
现列出排查思路
1.
在/etc/php.ini中设置PHP脚本执行的最长时间max_execution_time = 30,这里设置为30秒。
2.
在/etc/php-fpm.conf 中设置PHP-FPM进程处理每个进程的超时时间request_terminate_timeout = 30s
3.
在/etc/php-fpm.conf中开启PHP的慢日志
request_slowlog_timeout = 1s
slowlog = /var/log/php-fpm/www-slow.log
4.
在Nginx配置文件nginx.conf 中设置
fastcgi_connect_timeout 60; 设置Nginx和FastCGI Server建立连接的超时时间,默认是60秒,但是这个值不能经常超过75秒