Tích Hợp Node.js và WordPress Trên Cùng Một Tên Miền
Bạn muốn xây dựng một website mạnh mẽ với Node.js và tích hợp một blog WordPress mượt mà? Bài viết này sẽ hướng dẫn bạn cách kết hợp hai nền tảng này trên cùng một tên miền, sử dụng Nginx trên AlmaLinux. Điều này không chỉ giúp tạo ra một sự hiện diện trực tuyến liền mạch mà còn tối ưu hóa cho SEO.
Chuẩn Bị Trước Khi Bắt Đầu
Trước khi đi vào chi tiết, hãy chắc chắn rằng bạn đã chuẩn bị đầy đủ các yếu tố sau:
- AlmaLinux 8 hoặc 9
- Một máy chủ chạy Nginx
- Thiết lập ứng dụng Node.js cơ bản
- Thiết lập WordPress
- Kiến thức cơ bản về cấu hình Nginx
Bước 1: Cài Đặt Nginx Trên AlmaLinux
Để bắt đầu, bạn cần cài đặt Nginx trên AlmaLinux. Đầu tiên, hãy cập nhật hệ thống và cài đặt các phụ thuộc cần thiết bằng các lệnh sau:
bash
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y nodejs npm nginx
Bước 2: Tạo Ứng Dụng Node.js Đơn Giản
Bạn có thể tạo một ứng dụng Node.js đơn giản bằng cách sử dụng Express. Đầu tiên, tạo thư mục cho ứng dụng:
bash
mkdir my-node-app
cd my-node-app
npm init -y
npm install express //Cài đặt Express (hoặc framework Node.js bạn thích)
Mã Nguồn Ứng Dụng Node.js
Tạo file app.js với nội dung sau:
javascript
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Chào mừng bạn đến với website của tôi!');
});
app.listen(port, () => {
console.log(`Ứng dụng Node.js chạy trên cổng ${port}`);
});
Quản Lý Quy Trình Với PM2
Để quản lý quy trình Node.js, bạn có thể sử dụng PM2:
bash
sudo npm install -g pm2
pm2 start app.js
pm2 startup systemd
Bước 3: Cài Đặt WordPress
Để cài đặt WordPress, hãy tải xuống và giải nén WordPress vào thư mục mong muốn:
bash
cd /var/www/example.com
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress blog
Bước 4: Cấu Hình Nginx
Tiếp theo, bạn cần cấu hình cho Nginx bằng cách tạo file cấu hình tại /etc/nginx/conf.d/example.com.conf:
nginx
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
# Ứng dụng Node.js (tên miền gốc)
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# Blog WordPress
location /blog {
alias /var/www/example.com/blog;
try_files $uri $uri/ /blog/index.php?$args;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
}
Bước 5: Thiết Lập Quyền Và Bảo Mật
Đảm bảo quyền truy cập cho thư mục WordPress:
bash
sudo chown -R nginx:nginx /var/www/example.com
sudo chmod -R 755 /var/www/example.com
Bước 6: Khởi Động Dịch Vụ
Cuối cùng, bạn cần khởi động dịch vụ Nginx và ứng dụng Node.js:
bash
sudo systemctl enable nginx
sudo systemctl enable pm2-root
sudo systemctl start nginx
pm2 startup
pm2 save
Kết Luận
Bây giờ, bạn đã hoàn tất việc cấu hình một trang web Node.js hoạt động như trang chính, đồng thời một blog WordPress được tích hợp tại /blog. Thiết lập này cho phép mỗi ứng dụng hoạt động độc lập nhưng vẫn có thể sử dụng chung một tên miền, giúp quản lý và triển khai dễ dàng hơn.
Khuyến Nghị Bổ Sung
- Triển khai SSL với Let's Encrypt để bảo mật
- Thiết lập sao lưu định kỳ để tránh mất mát dữ liệu
source: viblo