※ 하고싶었던 것!
  • RWAPM이 돌아가고 있는 서버에서 Ruby On Rails 서비스를 함께 돌리기
  • 트래픽이 많지 않은 서비스 가능한 정도의 서버환경 만들기


※ 꼭 그렇게 해야하나!
  • 고객사엔 서버가 한대(Windows Server)밖에 없고, 당장 다른 서버를 구입하기엔 비용부담이 있음.
  • 현재 서버엔 RWAPM에서 5개 서비스가 잘 돌아가고 있음. 운용중인 기존 서비스를 옮기는데 대한 부담.
  • 개발단계에선 서버를 따로 돌려도 관계없으나, 실제 서비스 할때도 문제없을지 확인하고 진행하고 싶었음.


※ 개발자 수준
  • PHP/ASP/C# 등으로 웹사이트 많이 만들어 봤으나, 앞으로 루비도 사용해보기로 3일전에 마음먹음.
  • 리눅스 서버도 다뤄보긴 했으나 윈도우 서버가 훨씬 편함.
  • 자료 찾고 직접 설정파일들 수정하면서 직접 설정하는것 보다 Installer 통한 설치 & 살짝 수정에 만족.


사전 작업)
1. 서버에는 현재 RWAPM이 설치됨
2. http://instantrails.rubyforge.org 사이트에 접속해서 instantRails 최신버전을 다운로드
[InstantRails-2.0-win.zip]파일을 받았는데 2007년에 릴리즈가 멈춘거 맞나요?


※ 설치 과정
1. 다운로드 받은 zip 파일 압축을 풀고 폴더명을 간단하게[InstantRails] 수정한 후, 설치하려는 경로에 복사한다.
예) D:\InstantRails 폴더로 복사


2. RWAPM+MYSQL서비스가 실행중이면 서비스를 잠시 중지 시킨다.


3. Instant Rails.exe 파일을 실행한다.


4. 실행하면 경로가 이동되었다는 경고가 나온다. 그냥 "확인"을 클릭한다.
(Instant Rails has moved from "D:\OpenSourceProjects\InstantRails\InstantRails-win\InstantRails\" to "D:\InstantRails\". Regenerate configuration files ?)


5. Instant Rails 가 실행된다.
Apache와 MySQL서비스가 기본으로 Started 되어 있습니다.


6. Configure > Instant Rails 메뉴로 들어가서 설정을 변경한다.
왼쪽 Apache 버튼 옆에 "I" 아이콘을 클릭하면 메뉴가 나온다. Configure > Instant Rails 를 실행한다.

두번째 항목 "Automatically start the servers when Instant Rails starts"에 체크를 해제한다.
(RWAPM 서버를 사용할 예정이므로 Instant Rails 서비스는 자동시작하지 않는다)
나머지 항목은 필요에 따라서 체크한다.
첫번째 항목은 윈도우 시작시 자동시작여부 설정이며 나머지 항목은 변경하지 않아도 상관없다.
"OK"버튼을 클릭하여 설정을 저장한다.


7. Instant Rails에 포함된 Apache와 MySQL서비스를 중지시킨다.
(RWAPM서비스의 Apache와 MySQL서비스를 사용할 예정이다)

"Apache"버튼을 클릭하여 "Stop"메뉴를 실행한다. 파란 Started 신호등이 빨간 Stopped 신호등으로 바뀐다.
같은 방법으로 "MySQL" 서비스도 중지시킨다.
(윈도우 종류에 따라 RWAPM서비스가 실행중일때, Instant Rails의 Apache 신호등이 파란 Started로 들어오는 경우가 있으며, Apache서비스가 종료되지 않을 때가 있다. RWAPM을 종료한 후 Instant Rails를 실행하여 Stopped인지 확인한다.)


8. RWAPM의 APACHE 설정파일인 httpd.conf 를 변경한다.
"RWAPM폴더">RTM20040531>conf>httpd.conf 파일(경로가 다를 경우 해당 설정파일)에서 아래 주석을 풀고 저장한다.
---------------------------------------------------------------------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
---------------------------------------------------------------------------------------


9. RWAPM의 APACHE 설정파일인 virtualHost.conf 를 변경한다.
"RWAPM폴더">RTM20040531>conf>httpd.conf 파일(경로가 다를 경우 해당 설정파일)에서 서비스 내용을 추가하고 저장한다. (Instant Rails에 샘플로 들어있는 cookbook 서비스를 설정하는 예 이므로 자신의 서비스에 맞게 수정한다.)
---------------------------------------------------------------------------------------
<VirtualHost *:80>
    ServerName www.mycookbook.com 
    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001
</VirtualHost>
---------------------------------------------------------------------------------------


10. RWAPM SERVER와 MySQL 서비스를 실행한다.


11. Instant Rails에서 cookbook서비스를 실행한다.
6.에서 설명한 메뉴에서 "Rails Applications > Manage Rails Applications..."메뉴를 실행한다.

"Rails Applications" 목록에서 "cookbook"항목을 체크한 후, 오른쪽 메뉴 중 "Start with Mongrel"을 실행한다.


12. Windows Hosts 파일에 www.mycookbook.com 을 추가한 후, 브라우저에서 웹사이트를 호출한다.




Instant Rails 메뉴얼을 참조하면 새로운 Rails Application 추가도 가능하다.
아직 성능 테스트나 보안문제 등은 확인하지 못했지만, 
사이트 개발중 또는 트래픽이 많이 발생하지 않는 사이트에서는 사용할만 하지 않을까?
기존에 RWAPM에서 돌아가던 서비스를 Instant Rails 쪽으로 옮기는 것도 가능할 것 같다.
그런데 서비스가 많을 경우 작업이 번거로우며, 또한 Instant Rails 최신버젼은 이미 나온지 너무 오래 됐다.




Posted by 감자전

댓글을 달아 주세요