LEMP Stack với Docker: Giải pháp hoàn hảo cho website của bạn

LEMP Stack Là Gì?

LEMP Stack là viết tắt của bốn công nghệ chính được sử dụng để chạy các website và ứng dụng web:

  • Linux: Hệ điều hành mã nguồn mở.
  • Nginx: Web server hiệu suất cao.
  • MySQL: Hệ quản trị cơ sở dữ liệu quan hệ.
  • PHP: Ngôn ngữ lập trình phía server.

Với Docker, LEMP Stack trở nên dễ dàng hơn trong việc triển khai, bảo trì và nâng cấp. Docker là một nền tảng mã nguồn mở giúp đóng gói, phân phối và chạy ứng dụng trong các container, đảm bảo ứng dụng hoạt động đồng nhất trong mọi môi trường.

Lợi Ích Của Việc Sử Dụng LEMP Stack Với Docker

1. Dễ Dàng Bảo Trì và Nâng Cấp

Docker hóa LEMP Stack giúp việc bảo trì và nâng cấp trở nên dễ dàng hơn. Bạn có thể cập nhật từng thành phần như PHP, Nginx, hoặc MySQL mà không ảnh hưởng đến các phần khác của hệ thống. Điều này giảm thiểu rủi ro và đảm bảo tính liên tục của dịch vụ.

2. Bảo Mật Cao

Việc đóng gói ứng dụng trong các container giúp cô lập từng thành phần, từ đó tăng cường bảo mật. Bất kỳ lỗ hổng bảo mật nào trong một thành phần sẽ không ảnh hưởng đến toàn bộ hệ thống.

3. Hiệu Suất Cao

Nginx được biết đến với khả năng xử lý hàng nghìn kết nối đồng thời, giúp website của bạn luôn hoạt động mượt mà ngay cả khi lưu lượng truy cập tăng đột biến.

4. Triển Khai Nhanh Chóng

Với Docker Compose, bạn chỉ cần một lệnh để triển khai toàn bộ môi trường LEMP Stack. Điều này tiết kiệm thời gian và giảm thiểu sai sót trong quá trình cấu hình.

Hướng Dẫn Cài Đặt LEMP Stack Với Docker

Hàng có sẵn: https://github.com/Tuanyk/leowebstack

Hoặc, bạn có thể tự build một project docker để tùy chỉnh

Bước 1: Tạo File docker-compose.yml

Tạo một file docker-compose.yml với nội dung sau:

version: '3.1'

services:

  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./web:/var/www/html
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - php

  php:
    image: php:7.4-fpm
    volumes:
      - ./web:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ADMIN_PASSWORD_HERE
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: PASSWORD_HERE
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Bước 2: Chạy Lệnh Triển Khai

Mở terminal và chạy lệnh:

docker-compose up -d

Bước 3: Cấu Hình Nginx

Tạo một file cấu hình Nginx trong thư mục nginx/conf.d/ với nội dung:

server {
    listen 80;
    server_name yourwebsite.com www.yourwebsite.com;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    access_log /var/log/nginx/yourwebsite.com.access.log;
    error_log /var/log/nginx/yourwebsite.com.error.log;
}

Bước 4: Đặt Mã Nguồn Website

Đặt mã nguồn website của bạn vào thư mục web. Bạn có thể sử dụng PHP hoặc WordPress tùy ý.

Bước 5: Cấu Hình SSL (Tùy Chọn)

Nếu bạn muốn sử dụng SSL, bạn có thể sử dụng Certbot để tạo chứng chỉ SSL. Chạy lệnh sau trong container Nginx:

certbot --nginx -d yourwebsite.com -d www.yourwebsite.com

Sau đó, cấu hình lại file Nginx để sử dụng chứng chỉ SSL.

Kết Luận

Sử dụng LEMP Stack với Docker mang lại rất nhiều lợi ích về hiệu suất, bảo mật và tính dễ dàng trong việc triển khai và bảo trì. Với các bước cài đặt đơn giản như trên, bạn sẽ nhanh chóng có được một môi trường làm việc chuyên nghiệp và hiệu quả cho website của mình.

Founder
Bài đã đăng: 134

Simpler is Better

«
»

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *