저는 얼마 전부터 Cherokee로 웹사이트 호스팅을 시작했습니다. 외부 소스(FastCGI 등)의 경우 지정된 소켓이나 포트에서 실행 중인 프로세스를 찾을 수 없는 경우 프로세스를 시작하는 옵션이 있습니다. 이는 PHP 또는 Django 사이트가 충돌하는 경우(가끔 발생하는 경우) 자동으로 다시 시작된다는 의미이므로 유용합니다.
PHP-FPM을 사용하는 새 서버에서는 Cherokee를 사용할 수 없어(PHP 버그가 있음) NGINX로 옮겼습니다. 저는 구성 스타일 때문에 NGINX를 정말 좋아하지만 프로세스가 충돌하고 다시 생성되지 않는 심각한 문제가 있습니다. PHP는 때때로 이 작업을 수행하지만 Django 사이트에서는 더 큰 문제입니다. 이를 위한 초기화 스크립트를 만들었고 부팅 시 표시되지만 재부팅 사이에 실패하면 도움이 되지 않습니다.
FastCGI 프록시를 찾고 있는 것 같습니다. 어떤 프로세스가 어떤 소켓/포트에서 실행되어야 하는지 알고 필요에 따라 다시 생성하는 Cherokee와 같은 것입니다. 그런 것이 존재하나요? 더 쉬운 구성을 위해 이것을 NGINX에 빌드하는 방법이 있습니까?
답변1
어때요?데몬 도구특히 모니터링 도구
감독 및 모니터링 서비스. 서비스를 시작하고 서비스가 종료되면 다시 시작합니다. 새 서비스를 설정하는 것은 간단합니다. 모든 감독 요구 사항은 서비스를 실행하는 실행 스크립트가 포함된 디렉터리입니다.
답변2
다시 태어나다초기화 테이블
답변3
나는 이 daemontools
제안에 동의하지만, (어떤 이유로든) DJB 소프트웨어 작동 방식이 마음에 들지 않는다면,supervisord
.
얼마전에 supervisord
관리를 nginx
위해 FreeBSD 이미지를 설정했고gunicorn
, 저는 간단한 WSGI 애플리케이션을 호스팅하는 데 사용하며 전체 프로세스는 매우 간단합니다.
그런데 Django에 대해 이 작업을 수행하는 경우 Gunicorn을 사용하면 Django 애플리케이션을 매우 쉽게 배포할 수 있습니다. 바라보다이 블로그 게시물자세한 내용은.
답변4
생각해 본 적 있어?god
?
God은 Ruby로 작성된, 구성하기 쉽고 확장하기 쉬운 모니터링 프레임워크입니다.
서버 프로세스와 작업을 계속 실행하는 것은 배포 프로세스에서 쉬운 부분입니다. 하나님은 가장 간단하고 가장 강력한 모니터링 애플리케이션을 목표로 하십니다.
나는 이것을 사용하여 Rails/nginx 인스턴스가 충돌할 경우 다시 활성화되도록 하고, 올바른 포트를 사용하고 있는지 확인하기 위한 기본 지원은 표시되지 않지만 문제가 프로세스에 있다는 것이면 잘못될 수 없습니다. 실패하거나 더 이상 실행되지 않습니다 god
.