Trước khi xem qua hướng dẫn này các bạn có thể xem bài viết về cách Deploy một ứng dụng NodeJS lên VPS CentOS tại đây: https://ngontumathuat.com/post/deploy-node-js-len-vps-centos-7SCbmYuFbuRz8cpRmYtd/

 

Bài viết trên đã hướng dẫn cách cấu hình Nginx cho server rồi. Vì vậy bài này mình sẽ ko đề cập lại nữa.

 

1. Cấu hình Nginx

 

Dùng câu lệnh sau để chỉnh sửa file config có tên ngontumathuat.conf mà chúng ta đã tạo trước đó

vi /etc/nginx/conf.d/ngontumathuat.conf

 

Thêm Domain vào, ở đây domin của mình là ngontumathuat.com

server {
    server_name ngontumathuat.com www.ngontumathuat.com;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

 

Trường hợp bạn muốn cấu hình cả BE và FE trên cùng 1 con server thì có thể cấu hình như sau

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:3001/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/ {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

 

Trong đó Backend đang chạy ở port 3000 và FE là port 3001

 

Restart Nginx

sudo systemctl reload nginx

2. Trỏ Domain về IP server

Tùy thuộc vào nhà cung cấp domain của bạn mà truy cập đến trang quản trị Domain.

Về cơ bản thì các bạn cần truy cập vào DNS / Nameservers -> Thêm DNS Record với Type A trỏ về IP server.

 

 

Ở ví dụ này IP của mình là 123.456.7.89

 

3. Thêm SSL với Cerbot Let’s Encrypt

SSL là một loại chứng chỉ giúp mã hóa thông tin qua đó nâng cao bảo mật trang web. Chi tiết các bạn có thể tìm hiểu thêm trên website: https://www.cloudflare.com/learning/ssl/what-is-ssl/

Sau khi có chứng chỉ SSL trang web của bạn có thể truy cập với https thay vì http như trước

 

3.1 Cài đặt Cerbot Let’s Encrypt Client

yum -y install epel-release

 

yum -y install certbot-nginx

 

3.2 Cài đặt SSL Let’s Encrypt

certbot --nginx -d ngontumathuat.com -d www.ngontumathuat.com

 

Trong quá trình cái đặt bạn chỉ cần bấm Y là xong

 

Chứng chỉ Cerbot chỉ có hiệu lực trong 90 ngày, vì vậy sau 90 ngày các bạn cần phải cài đặt lại. Hoặc sử dụng cronjob để auto cài đặt lại.

 

Nếu có lỗi trong quá trình cài đặt có thể là do Domain chưa được trỏ đến IP server (xem lại bước 2).

Nếu đã trỏ Domain nhưng vẫn không được thì rất có thể do bạn mới trỏ Domain nên cần thời gian để xóa ip cũ. Các bạn chỉ việc đợi một thời gian sau rồi hãy thử lại.

 

Vậy là xong. Done!