그놈의 안드로이드

Lighttpd error code 500 본문

리눅스/웹 서버

Lighttpd error code 500

Sandai.Developer 2018. 12. 31. 16:18

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
Comments