+1

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

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

All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.