|
많은 웹마스터들이 nginx+php-fpm으로 전환한 후 500,502개의 문제로 고민하고 있습니다. nginx가 위의 오류 코드를 받으면, php 백엔드 파싱에 실행 오류나 실행 타임아웃과 같은 문제가 있음을 판단할 수 있습니다. php-fpm.conf에는 다음과 같이 설명request_slowlog_timeout 매개변수가 있습니다 - ; The timeout for serving a single request after which a PHP backtrace will be
- ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
- ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
- ; Default Value: 0
- ;request_slowlog_timeout = 0
코드 복사request_slowlog_timeout가 특정 초request_slowlog_timeout =5로 설정되어 있으면, 스크립트가 5초 이상 실행되면 느린 로그 파일에 기록됩니다
request_slowlog_timeout =0이면 느린 로그 출력이 꺼졌다는 뜻입니다. 느린 로그 파일 위치는 기본적으로 php 설치 디렉터리의 log 폴더에 있으며, slowlog = log/$pool.log.slow 매개변수를 수정하여 지정할 수 있습니다. php-fpm 느린 로그 예시, 느린 로그는 프로세스 번호, 스크립트 이름, 특정 파일 중 어떤 코드 라인, 실행하기 너무 길어진 함수를 기록합니다. - [21-Nov-2013 14:30:38] [pool www] pid 11877
- script_filename = /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php
- [0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php:2
- [21-Nov-2013 14:15:23] ERROR: [pool www] 'slowlog' must be specified for use with 'request_slowlog_timeout'
코드 복사request_slowlog_timeout와 슬로우로그는 동시에 설정해야 하고, 슬로우로그도 request_slowlog_timeout 켤 때 동시에 켜야 합니다 - [21-Nov-2013 14:16:27] ERROR: Unable to create or open slowlog(/usr/local/lnmp/php/log/www.log.slow): No such file or directory (2)
코드 복사느린 로그 경로는 수동으로 만들어야 합니다
php-fpm 느린 로그 활성화를 위한 구체적인 단계: - cd /usr/local/lnmp/php
- vi etc/php-fpm.conf
- 去掉request_slowlog_timeout 、slowlog的前缀分号';',设置request_slowlog_timeout =5;
- :wq
- 保存退出
- 创建慢日志目录
- mkdir log
- 重启php-fpm
- kill -INT `cat var/run/php-fpm.pid
- sbin/php-fpm
코드 복사
|