Xin chào các bạn hôm nay mình xin chia sẻ vấn đề deploy code nodejs và reactjs lên server hãy like và subcribe cho mình nhé =))))
Cài đặt các module cần thiết
Cài đặt git, npm, nginx
sudo yum update
Cài đặt nginx
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
Cài đặt git
Cài đặt node
Cài đặt reactjs trên môi trường server
Clone project
git clone YOUR_REPOSITORY_URL
Chạy dự án với lệnh npm
npm install --save
npm run build
Cài đặt cấu hình cho server
vi /etc/nginx/conf.d/project_name.conf
server {
listen 3000;
server_name localhost;
error_log /var/log/nginx/gakken_reactjs_error.log;
access_log /var/log/nginx/gakken_reactjs_access.log;
root /var/www/html/gakken_dragon/Gakken_Dragon_ReactJs/build;
index index.html index.htm;
charset utf-8;
client_max_body_size 1024M;
location / {
try_files $uri $uri/ /index.html;
auth_basic "Authentication required";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ /\.(?!well-known).* {
deny all;
}
}
Khởi động lại nginx
sudo systemctl restart nginx
Vậy là chúng mình đã đi được một nửa chặng đường khi đã cài đặt xong reactjs lên server 🙂 Keep going.
Cài đặt nodejs lên server
Cài đặt module cần thiết
PM2
sudo npm install pm2@latest -g
Sau khi cài đặt xong pm2 bạn có thể start ứng dụng bằng cách
Quickstart
Nhưng mình suggest 1 cách hay hơn mà bạn có thể cấu hình các thứ cần thiết cho dự án
The Ecosystem File
Trong file ecosystem chứa đoạn script sau
ecosystem.config.js
module.exports = {
apps : [{
name: ‘My App’,
script: ‘server.js’,
instances: ‘max’,
max_memory_restart: ‘256M’,
env: {
NODE_ENV: ‘development’
},
env_production: {
NODE_ENV: ‘production’
}
}]
};
Trong file cấu hình này bạn có thể thấy tên ứng dụng là My App. Chạy nó bằng script server.js Và bộ nhớ tối đa khởi động là 256M
Một số lệnh với PM2
Cấu hình nginx
server {
listen 80;
server_name localhost;
index index.html index.htm;
access_log /var/log/nginx/nodeapp.log;
error_log /var/log/nginx/nodeapp-error.log error;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3001;
proxy_redirect off;
}
}
HAPPY CODING!!!
Tham khảo: