Cài Đặt Server Chạy Rails App Trên Production Sử Dụng Puma + Nginx

Tram Ho

Bài viết gốc ở blog của mình: https://chienkira.github.io/blog/posts/Cài Đặt Server Chạy Rails App Trên Production Sử Dụng Puma + Nginx

Puma là web server nhỏ gọn đi liền trong Rails giúp developer có thể bắt đầu code một cách nhanh nhất. Tuy nhiên mang nó làm web server thực sự để chạy trên môi trường production thì chưa ổn. Bài này mình muốn memo lại chia sẻ với các bạn các bước cài đặt server để ứng dụng Rails chạy ổn định trên môi trường production.

Prerequisite

  • OS môi trường là Amazon linux
  • Database sử dụng là Postgres

System configuration

Puma hoạt động như application server cho ứng dụng Rails,
còn Nginx sẽ hoạt động với vai trò là reverse proxy – nhận request và chuyển response giữa client và Puma.
Puma và Nginx giao tiếp với nhau thông qua socket.

  • rbenv + Ruby 2.5
  • Rails 5 + Puma + Nginx

puma-nginx.png

Source Image : http://codeonhill.com

Ok, ssh vào server và bắt đầu cài đặt thôi! ↓↓↓


1. Chuẩn bị môi trường

2. Tạo user

Thói quen tốt là không nên dùng user root/ec2-user mặc định, do đó ta sẽ tạo một user
mới để phục vụ quá trình cài đặt cũng như khởi chạy ứng dụng Rails.

3. Cài đặt rbenv và Ruby

Sử dụng rbenv để quản lý các version của ruby.

4. Chuẩn bị cho ứng dụng Rails

5. Cài đặt Puma chạy dạng service – chạy ở background và tự khởi chạy

File puma.service tham khảo

6. Cài đặt Nginx

File greatapp.nginx.conf tham khảo

7. Cài đặt log rotation

Log của nginx, puma, rails theo thời gian sẽ tăng dần do đó cài đặt để rotation log
là thói quen chúng ta nên làm.

File greatapp.logrotate.conf tham khảo


Chia sẻ bài viết ngay

Nguồn bài viết : Viblo