Tích hợp Node.js và WordPress trên cùng một tên miền: Hướng dẫn chi tiết

0 0 0

Người đăng: Thái Thịnh

Theo Viblo Asia

Bạn muốn xây dựng một website mạnh mẽ với Node.js và tích hợp 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 bằng Nginx trên AlmaLinux, tạo nên sự hiện diện trực tuyến liền mạch và tối ưu SEO.

Trước khi bắt đầu, hãy đảm bảo bạn có những điều 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
  • Làm quen với cấu hình Nginx

Bước 1: Chuẩn bị máy chủ

Bạn có thể cài đặt Nginx trên AlmaLinux bằng cách trước tiên 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:

sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y nodejs npm nginx

Bước 2: Bạn có thể tạo một ứng dụng đơn giản bằng Express

mkdir my-node-app
cd my-node-app
npm init -y
npm install express //Install Express (or your preferred Node.js framework)

Tạo ứng dụng Node.js cơ bản

const express = require('express');
const app = express();
const port = 3000; app.get('/', (req, res) => { res.send('Welcome to my website!');
}); app.listen(port, () => { console.log(`Node.js app running on port ${port}`);
});

Sử dụng PM2 để quản lý quy trình

sudo npm install -g pm2
pm2 start app.js
pm2 startup systemd

Bước 3: Cài đặt WordPress

Tải xuống và giải nén WordPress

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

Tạo /etc/nginx/conf.d/example.com.conf

server { listen 80; server_name example.com www.example.com; root /var/www/example.com; # Node.js application (root domain) 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; } # WordPress blog 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: Bảo mật và quyền

sudo chown -R nginx:nginx /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Bước 6: Bắt đầu dịch vụ

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 có một trang web Node.js hoạt động như trang web chính và một blog WordPress nằm tại /blog trong cùng một tên miền sử dụng Nginx. Thiết lập này cung cấp một giải pháp mà mỗi ứng dụng có thể hoạt động riêng biệt trong khi sử dụng cùng một tên miền, để quản lý và triển khai ứng dụng web và nội dung hợp lý. Cảm ơn các bạn đã theo dõi!

Khuyến nghị bổ sung

  • Triển khai SSL với Let's Encrypt
  • Thiết lập sao lưu thường xuyên

Bình luận

Bài viết tương tự

- vừa được xem lúc

The Twelve-Factor App, cẩm nang gối đầu giường trong xây dựng application (Phần 1)

Giới thiệu. Ngày nay các phần mềm được triển khai dưới dạng các dịch vụ, chúng được gọi là các web apps hay software-as-a-service (SaaS).

0 0 29

- vừa được xem lúc

8 Sai lầm phổ biến khi lập trình Android

1. Hard code.

0 0 185

- vừa được xem lúc

Popular interview question: What is the difference between Process and Thread? 10 seconds a day

Video được đăng tại channel Tips Javascript

0 0 28

- vừa được xem lúc

Thuật toán và ứng dụng - P1

Mục đích series. . Những bài toán gắn liền với thực tế. Từ đó thấy được tầm quan trọng của thuật toán trong lập trình.

0 0 35

- vừa được xem lúc

Tác dụng của Docker trong quá trình học tập

Docker bây giờ gần như là kiến thức bắt buộc đối với các anh em Dev và Devops, nhưng mà đối với sinh viên IT nói chung vẫn còn khá mơ hồ và không biết tác dụng thực tế của nó. Hôm nay mình sẽ chia sẻ

0 0 30

- vừa được xem lúc

Làm giàu trong ngành IT

Hầu như mọi người đều đi làm để kiếm tiền, ít người đi làm vì thấy cái nghề đó thú vị lắm. Bây giờ vất cho mình 100 tỷ bảo mình bỏ nghề thì mình cũng bỏ thôi.

0 0 32