서버에서 접속해서 디버깅용으로 직접 로그를 남겨서 볼 때, 수정된 코드를 반영하기 위해, 패신저를 보통 재시작해줬었다.
그런데 패신저에서 코드를 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)
이 명령문을 치면, 저 경로에 있는 애플리케이션이 Reload된다.
cd /path-to-your-app $ bundle exec passenger-config restart-app / Restarting /Users/phusion/testapp/public (development)
이 명령문은 패신저가 떠있는 모든 애플리케이션을 Reload 해준다.
보통 한 서버에서는 한 서비스만 올려놓으니까,
내가 이 명령문을 쓸 때는 이게 더 편할거같다.
그리고 이 명령문을 치지않아도 항상 Reload를 해주는 방법도 있다.
mkdir -p tmp
$ touch tmp/always_restart.txt
애플리케이션 코드가 들어있는 경로에서 tmp폴더를 만들고, always_restart.txt폴더를 만들어주면 된다.
tmp/restart.txt 파일로 패신저를 재시작시키는 개념과 비슷해보인다.
rm tmp/always_restart.txt
이 방법을 사용하다가, reload를 해제하고 싶을 때는 저 파일을 삭제해주면 된다.
관련 문서는 Reloading Code 에서 볼 수 있다.
'소프트웨어-이야기 > 인프라' 카테고리의 다른 글
[AWS]Athena 사용 팁 (4) | 2017.08.01 |
---|---|
(Phusion Passenger) 패신저는 뭐하는애일까 (0) | 2017.06.29 |
(Phusion Passenger) 패신저에서 트래픽을 어떻게 분산시켜줄까? (2) | 2017.06.27 |
(Phusion Passenger) Rails + Nginx 최적화를 위한 설정값 (4) | 2017.06.26 |
[HTTP] HTTP 2의 탄생 배경과 특징 (23) | 2017.06.07 |