Cherokee를 사용하여 잠시 동안 사이트를 호스팅하기 시작했습니다. 외부 소스 (FastCGI 등)의 경우 지정된 소켓 또는 포트에서 실행중인 프로세스를 찾을 수없는 경우 프로세스를 시작하는 옵션이 있습니다. PHP 또는 a Django 사이트가 넘어지는 경우) 넘어 가면 자동으로 다시 시작됨)을 의미하기 때문에 이는 훌륭합니다.
PHP-FPM을 사용하는 새로운 서버에서 Cherokee를 사용할 수 없었습니다 (PHP에 버그가 있음) .NGNGX로 옮겼습니다. NGINX (구성 스타일)가 정말 마음에 들지만 프로세스가 넘어지고 다시 생성되지 않는 심각한 문제가 있습니다. PHP 가끔이 작업을 수행하지만 Django 사이트는 더 문제가됩니다. init 스크립트를 만들었고 부팅시 나타나지만, 그렇지 않습니다.) 재부팅 사이에 문제가 발생하면 도와주세요.
FastCGI 프록시를 찾고 있다고 생각합니다. Cherokee와 같이 어떤 소켓/포트에서 어떤 프로세스를 실행해야하는지 알고 필요할 때 다시 생성합니다. 그런 것이 있습니까? 이것을 NGINX에 빌드하는 방법이 있습니까?
daemontools 특히 감독 도구는 어떻습니까?
감독은 서비스를 모니터링합니다. 서비스를 시작하고 서비스가 종료되면 다시 시작합니다. 새 서비스를 설정하는 것은 쉽습니다. 모든 감독 요구는 서비스를 실행하는 실행 스크립트가있는 디렉토리입니다.
inittab 에서 다시 생성
daemontools
제안을 두 번째로 생각하지만 DJB의 소프트웨어 작동 방식이 마음에 들지 않으면 supervisord
도 있습니다.
supervisord
및 nginx
를 관리하기 위해 gunicorn
를 사용하여 FreeBSD 이미지를 잠시 다시 설정했습니다. 전체 과정은 매우 간단했습니다.
Django에서이 작업을 수행하는 경우 Gunicorn은 Django apps, btw)를 배포하는 것이 매우 간단합니다. 자세한 내용은 이 블로그 게시물 을 참조하십시오.
또 다른 옵션은 monit 을 사용하는 것입니다. 이것은 제가 일반적으로 사용하는 것입니다.
god
을 고려 했습니까?
하나님은 루비로 작성된 모니터링 프레임 워크를 쉽게 구성하고 확장 할 수 있습니다.
서버 프로세스와 작업을 계속 실행하는 것은 배포 프로세스의 간단한 부분이어야합니다. 하나님은 사용 가능한 가장 단순하고 가장 강력한 모니터링 응용 프로그램을 목표로합니다.
Rails/nginx 인스턴스가 넘어지면 복구되고, 올바른 포트를 사용하고 있는지 확인하는 기본 지원이 보이지 않지만 문제가 프로세스가 실패하거나 더 이상 실행되지 않으면 god
(으)로 잘못 갈 수 없습니다.
해킹 솔루션은 프로세스가 다운되면 디 텍트하는 스크립트 (cron
를 통해)를 주기적으로 시작하고이 경우 다시 시작하는 것입니다.
Daemontools 및 supervisord 외에도 daemonize 가 있습니다.
실패한 데몬을 다시 시작하는 방법에는 여러 가지가 있지만 일반적인 권장 사항은 "inittab에서 다시 생성"이지만 시스템이 실제로 고정 된 경우 제한을 고려해야합니다.
워치 독 데몬은 PID 파일을 통해 프로세스를 모니터링 할 수도 있습니다. 그러나 이는 기본적으로 실행되거나 데몬을 모니터링하고 다시 시작하는 것이 아니라 제대로 실행하기에 너무 아프거나 (예 : 메모리 부족, 폭격 등) 시스템을 재부팅하기위한 보조 방어선으로 간주해야합니다.
마지막으로 관리자에게 전역보기를 제공하기 위해 nagios를 사용하여 복잡한 시스템을 모니터링하는 것을 고려할 수 있습니다. 플러그인을 실행하여 외부에서 데몬의 작동을 조사 할 수 있습니다. 이는 단순히 PID가 작동하는 기능에 대한보다 완전한 테스트입니다.