본문 바로가기

passenger

(Phusion Passenger) 웹서버 - 패신저를 구성하는 방식 ( Mode ) 패신저에서 지원하는 3가지 패신저 & 웹서버 조합패신저에서 지원하는 패신저 & 웹서버 조합은 위처럼 세가지가 있다. StrandardAlone 모드 패신저안에 Nginx 엔진이 내장되어 있는 구조이다.그래서 따로 이것저것 Nginx나 Apache를 설치하지 않아도 된다.그래서 패신저 문서에서는 개발 환경 때 StrandAlone을 쓰는게 편하니, 이걸 사용하라고 권장한다.그리고 만약 한 서버에서 하나의 애플리케이션만 띄우는 방식으로 서버를 운영한다면, 프로덕션 모드에서도 StandardAlone 모드를 사용해도 괜찮다. Apache / Nginx Integration 모드 Apache나 Nginx 모듈을 사용해서, 패신저를 운영하는 방식을 의미한다. 이 모드는 개발 환경에서는 사용되지 않고, 프로덕션 환..
(Phusion Passenger) 패신저는 뭐하는애일까 패신저는 프로세스를 관리하는 역할을 한다. 그리고 HTTP Request를 라우팅처리해준다. 패신저에서 프로세스란 개념은 무엇일까?레일즈 애플리케이션 인스턴스를 하나 실행시킨걸, 패신저의 프로세스로 보면 될 것 같다.레일즈 인스턴스를 하나 띄어놓는 것은 패신저가 프로세스를 하나 띄어놓는 것과 같다.그리고 레일즈 인스턴스를 하나 죽이는 것은, 패신저가 프로세스를 하나 죽이는 것과 같다. 패신저의 프로세스 개념에서 알아둬야하는건 뭘까?각 프로세스의 메모리는 다른 프로세스들과 분리된 영역이다. 프로세스 A에서 power_blogger='rails_blogger' 라고 변수를 할당해놔도, 프로세스 B에서는 power_blogger라는 변수를 가져다가 사용할 수 없다. 프로세스들끼리 데이터를 공유하려면 어떻게 해..
(Phusion Passenger) 코드 reload하기 서버에서 접속해서 디버깅용으로 직접 로그를 남겨서 볼 때, 수정된 코드를 반영하기 위해, 패신저를 보통 재시작해줬었다. 그런데 패신저에서 코드를 Reload해주는 명령문이 따로 있었다. 패신저를 재시작해주는건 명령문을 치고, 몇초간 기다려야한다. 그런데 코드를 다시 읽어들이는 Reload는 이보다 더 빠르게 변경된 코드를 패신저에 반영할 수 있다. 단, config/application.rb에 있는 설정정보는 reload되지않는다고 한다.cd /path-to-your-app $ bundle exec passenger-config restart-app /Users/phusion/testapp Restarting /Users/phusion/testapp/public (development)이 명령문을 치면,..
[passenger] 서버에 올라간 Rails Application 재시작하기 개발 환경 서버에 레일즈 애플리케이션을 올리고, 테스트를 할 때 중간중간에 로그를 추가해서, 로그를 보고 싶을 때가 있다. 이 때 git에 디버깅용 로그를 추가했다가, 지우는건 번거롭다.그래서 서버에 올라가있는 레일즈 코드를 직접 수정해서, 중간중간에 필요한 로그를 보고 싶을 때가 있다. passenger을 통해 레일즈와 웹서버를 연결시킨 경우, 중간에 내가 코드를 직접 수정한건 어플리케이션을 재시작할 때까지는 반영되지 않는다. 포스팅 관련 참고 자료 : restart_app restart를 해줘야하는 이유 restart를 해줘야하는 이유는 영알못이지만 대충 읽어보면..패신저가 여러 프로세스를 갖고 있어서, 애플리케이션을 재시작할 때까지 레일즈 코드를 수정한게 영향을 주지 않는다고 한다. 1. resta..