- Cài đặt Nginx, Mysql, Nodejs, git. Về version của Nodejs và npm thì theo yêu cầu của dự án bạn đã tạo.
- Clone project về theo cú pháp.
git clone https://github.com/ibn-ashimi/my-project.git
- Di chuyển vào foder chứa code của bạn. Rồi chạy các lệnh bên dưới để tải thu viện về và cài đặt PM2
npm install --production
and
npm i forever -g
or
npm i pm2 -g - Cài đặt dotenv
npm i dotenv
- Build dự án của bạn với lệnh bên dưới.
NODE_ENV=production yarn build
#or
NODE_ENV=production npm run build - Thêm file server.js
nano server.js
và đưa đoạn code bên dưới.const strapi = require('@strapi/strapi');
strapi(/* {...} */).start(); - Build dự án
NODE_ENV=production pm2 start server.js --name api
# or
NODE_ENV=production forever start server.js
Nếu bạn build trên server yếu thì ở giai đoạn build sẻ không thành công và bị kill process
Bạn hãy tạo mới dự ánnpx create-strapi-app@latest
điền các thông tin theo hướng dẫn tạo dự án. Sau đó start project luôn và không cần build
pm2 start npm -- start
Cấu hình Proxy trên nginx
server {
listen 443 ssl;
server_name api.domain.com;
root /var/www/html;
# SSL Config
ssl_certificate /etc/letsencrypt/live/api.canonn.fyi/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.canonn.fyi/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Proxy Config
location / {
proxy_pass http://strapi;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $custom_forwarded_host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}