
Ubuntu 및 Debian에서 Nginx 및 Passenger와 함께 Ruby 앱을 배포하는 방법
2022-10-18 last update
6 minutes reading ruby rails passenger nginx passengerPhusion 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 키를 설치합니다.그런 다음 아래 파일에 승객 저장소 참조를 추가합니다. `lsb_release -cs`는 운영 체제의 코드명을 설정합니다. 이것을 변경하고 코드명을 수동으로 설정할 수도 있습니다.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
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마지막으로 Nginx 웹 서버를 재부팅하여 구성 파일에 대한 변경 사항을 다시 로드합니다.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. :-)
$ sudo systemctl restart nginx.service