Blog #2
Cài đặt Nginx:
$ sudo apt-get install nginx
Sau đó bạn cần edit file: /etc/nginx/sites-available/default
hoặc /etc/nginx/sites-enabled/default
.
upstream app {
# Path to Puma SOCK file, as defined previously
server unix:/home/deploy/appname/shared/sockets/puma.sock fail_timeout=0;
}
server {
listen 80;
server_name localhost;
root /home/deploy/appname/public;
try_files $uri/index.html $uri @app;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
Restart Nginx:
$ sudo service nginx restart
Nếu không có error gì, bạn có thể vào url để thử nhé http://server_ip/
Đến step này, Rails App của bạn đã lên production rồi. Ở bước này, mình sẽ sử dụng certbot để tạo SSL. certbot là open source để tạo và tự động renew SSL sử dụng Let’s Encrypt
Đầu tiên mình phải có domain mới set up SSL được. Sau khi mua và config doman xong, bạn update trong file config của Nginx từ localhost
sang domain
của bạn.
server {
listen 80;
server_name domain;
...
}
Các bước đơn giản như sau: (bạn có thể vào website của certbot để xem chi tiết hơn)
1/ ssh vào server
3/ Kiểm tra và update snapd tới version mới nhất
$ sudo snap install core; sudo snap refresh core
4/ Remove các certbot packages nếu có
$ sudo apt-get remove certbot
5/ Cài đặt certbot
$ sudo snap install --classic certbot
6/ Chạy command dưới để check certbot đã chạy ok
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
7/ Kết nối cerbot vào Nginx
$ sudo certbot --nginx
Nó sẽ tự động config vào file config của Nginx /etc/nginx/sites-available/default
và mặc định sẽ tự động renew SSL cho mình. Mình sẽ không cần lo về việc hết hạn nữa.
Bạn có thể vào url để thử nhé https://domain/
https://gorails.com/deploy/ubuntu/18.04#guide
https://viblo.asia/p/step-to-step-deploy-rails-app-va-config-ssl-aWj53jgol6m