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!