Ubuntu 및 Debian에서 Nginx 및 Passenger와 함께 Ruby 앱을 배포하는 방법

Ubuntu 및 Debian에서 Nginx 및 Passenger와 함께 Ruby 앱을 배포하는 방법

2022-10-18 last update

6 minutes reading ruby rails passenger nginx passenger
Phusion Passenger는 Apache 및 Nginx와 같은 웹 서버에 통합할 수 있는 응용 프로그램 서버이며 웹 서버를 통해 Ruby/Rails 응용 프로그램을 제공할 수 있습니다. 프로덕션 시스템에 Ruby on Rails 애플리케이션을 배포하는 것은 좋은 옵션입니다. 이 문서는 Ubuntu 및 Debian 시스템과 같은 Linux 시스템에서 Nginx와 함께 Ruby 앱을 배포하는 데 도움이 됩니다. 스테이징 및 프로덕션 배포에 이 튜토리얼을 사용할 수 있습니다. 우선 시스템에 이미 Ruby가 설치되어 있다고 가정합니다. 시스템에 Ruby가 설치되어 있지 않은 경우 아래 URL 중 하나를 사용하여 응용 프로그램 요구 사항에 따라 설치하십시오.
  • How to Install Latest Ruby on Debian, Ubuntu, Linuxmint
  • 1단계 – 전제 조건

    우선 Apt 리포지토리에 대한 HTTPS 지원을 활성화하고 시스템에 승객 패키지용 PGP 키를 설치합니다.
    sudo apt-get install -y dirmngr gnupg
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
    sudo apt-get install -y apt-transport-https ca-certificates
    
    그런 다음 아래 파일에 승객 저장소 참조를 추가합니다. `lsb_release -cs`는 운영 체제의 코드명을 설정합니다. 이것을 변경하고 코드명을 수동으로 설정할 수도 있습니다.
    sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger `lsb_release -cs` main > /etc/apt/sources.list.d/passenger.list'
    

    2단계 – 패신저 Nginx 모듈 설치

    이제 시스템에 승객 모듈과 Nginx를 설치하십시오. Nginx가 이미 설치되어 있는 경우 승객 라이브러리로 컴파일된 승객 저장소의 최신 Nginx 패키지가 설치됩니다.
    $ sudo apt-get install -y nginx-extras passenger
    
    Nginx 구성 파일/etc/nginx/nginx.conf를 편집하고 include/etc/nginx/passenger.conf의 주석을 제거하십시오. 선. 예를 들어 아래 스크린샷을 참조하세요.

    3단계 – Nginx VirtualHost 생성

    이제 이 서버에 Ruby/Rails 애플리케이션을 배포할 수 있습니다. Nginx 구성 파일을 만들고 타격과 같은 가상 호스트를 구성합니다.
    $ vim /etc/nginx/conf.d/example.com.conf
    
    디스크의 응용 프로그램 위치에 따라 문서 루트를 변경합니다.
      server {
            listen       80 default_server;
            server_name  example.com www.example.com;
            root         /path-to-ruby-app/public;
            passenger_enabled on;
    
       }
    

    4단계 – 설정 확인 및 Nginx 다시 시작

    아래 명령을 실행하여 시스템에서 승객 설치를 확인하십시오. 모든 검사를 제대로 통과해야 합니다. 검사 중 하나라도 실패하면 수정하는 데 도움이 됩니다.
    $ sudo /usr/bin/passenger-config validate-install
    
    What would you like to validate?
    Use  to select.
    If the menu doesn't display correctly, press '!'
    
     ‣ ⬢  Passenger itself
       ⬡  Apache
    
    -------------------------------------------------------------------------
    
     * Checking whether this Passenger install is in PATH... ✓
     * Checking whether there are no other Passenger installations... ✓
    
    Everything looks good. :-)
    
    마지막으로 Nginx 웹 서버를 재부팅하여 구성 파일에 대한 변경 사항을 다시 로드합니다.
    $ sudo systemctl restart nginx.service