그놈의 안드로이드
Lighttpd error code 500 본문
Lighttpd 벤치마크를 테스트 하는도중
유독 php로 들어가는 HTTP Request에서 다량의 오류가 발생했다.
서버에서 반환되는 서버에러는 500 - Internal Server Error
서버에 많은 요청이 몰리면서 서버가 감당을 못하는것으로 처음에는 예측했다.
하지만 에러 로그를 확인해본 결과(/var/log/lighttpd/error.log)
다음과 같은 에러로그가 남겨진걸 확인할 수 있었다.
2018-12-31 16:05:50: (mod_fastcgi.c.2995) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 133
2018-12-31 16:05:50: (mod_fastcgi.c.3587) all handlers for /text.php? on .php are down.
2018-12-31 16:05:52: (mod_fastcgi.c.2758) fcgi-server re-enabled: 0 /var/run/php/php7.0-fpm.sock
열심히 구글링을 한 결과 원인은 다음과 같았다.
기본적으로 모든 PHP 프로세스가 요청을 처리하는 중임을 의미하며 새로운 PHP 프로세스가 새로운 요청을 처리하는 데 사용할 수 없습니다.
보통 이것은 실행중인 PHP 코드가 느리며 PHP 프로세스가 느려지는 것을 의미합니다. 느린 쿼리가 범인인지 확인하려면 MySQL 저속 소그를 활성화하고 APC와 같은 PHP opcode 캐싱을 시도해보십쇼
.. 라는 답변이 달렸다 (https://serverfault.com/questions/438332/lighttpd-backend-is-overloaded-fcgi-server-re-enabled-all-handlers-are-down)
현재 사용하고 있는 PHP 버전은 PHP7.0-FPM 이다. 그렇다면 PHP7.2-FPM으로 업그레이드를 진행하면 결과가 달라질 수 있을까?
아니였다 PHP7.2 로 설치해봐도 똑같은 현상은 발견되었다.
문제는 이거다
/etc/lighttpd/conf-available/15-fastcgi-php.conf를 열어보면
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/php/php7.2-fpm.sock",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "200",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
보라색으로 표시된부분이 주석처리 되있었는데 저게 주석처리되면 그 밑에 max-procs 라던가 설정명령어를 인식하지 못하는 것이다.
그러나 주석 없이 처리하면 서버가 시작되지 않았다.
해당 디렉토리를 가보다 php-cgi는 없었다.
그래서 검색해본 결과 php-cgi를 설치해야 했다.
$ apt install php7.2-cgi
이렇게 설치해주면 /usr/bin/php-cgi가 생성되는걸 확인할 수 있었고 서버가 정상적으로 시작되는걸 볼 수 있었다.
'리눅스 > 웹 서버' 카테고리의 다른 글
WAS (Web Application Server) 란? (0) | 2019.01.01 |
---|---|
Nginx 아키텍처 (0) | 2019.01.01 |
Tornado 웹서버 구성 (0) | 2018.12.30 |
Vert.x 웹서버 구성 (0) | 2018.12.30 |
Node.js 웹서버 구성 (0) | 2018.12.30 |