Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy

Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy

Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy

1./ Định nghĩa Dynamic Subdomain

Dynamic subdomain là quá trình cấu hình tự động các subdomain trên một tên miền chính dựa trên một tập hợp các điều kiện hoặc quy tắc nhất định. Điều này thường được thực hiện thông qua phần mềm hoặc cấu hình máy chủ web để tạo ra và quản lý các subdomain một cách tự động, thay vì phải thủ công cấu hình từng subdomain một cách riêng lẻ.

Ví dụ, một hệ thống có thể sử dụng dynamic subdomain configuration để tạo subdomain cho mỗi người dùng khi họ đăng ký tài khoản, cho phép họ truy cập dịch vụ cá nhân hóa của họ thông qua một địa chỉ web riêng biệt. Điều này có thể làm bằng cách tự động tạo và cấu hình subdomain dựa trên thông tin từ cơ sở dữ liệu người dùng, mà không cần sự can thiệp thủ công.

 

2./ Mục đích sử dụng của Dynamic Subdomain

Giả sử bạn đang xây dựng một nền tảng thương mại điện tử cho các nhà bán lẻ nhỏ. Mỗi nhà bán lẻ muốn có một trang web riêng để quảng bá sản phẩm của họ. Thay vì yêu cầu họ tự tạo và cấu hình subdomain của họ (ví dụ: ten-cua-hang.nentang.com), bạn có thể sử dụng dynamic subdomain configuration để tự động tạo và cấu hình subdomain cho họ.

 

3./ Ví dụ cho Dynamic Subdomain

  • Một nhà bán lẻ mới đăng ký tài khoản trên nền tảng của bạn với tên cửa hàng là "HappyPets".
  • Hệ thống của bạn tự động tạo và cấu hình subdomain "happypets.nentang.com" cho họ.
  • Người dùng có thể truy cập trang web của cửa hàng HappyPets thông qua địa chỉ "happypets.nentang.com", nơi họ có thể quảng bá và bán sản phẩm của mình.

 

Quá trình này giúp tạo ra trải nghiệm cá nhân hóa cho mỗi nhà bán lẻ mà không cần họ phải lo lắng về việc cấu hình subdomain của riêng mình.

 

4./ Cài đặt Dynamic Subdomain trên nginx

Trước tiên bạn cần cài nginx Plus hoặc Compile nginx với LUA để sử dụng LUA cho việc tự động cấu hình Dynamic Subdomain.

Trên Nginx, bạn có thể cấu hình dynamic subdomain thông qua một số phương pháp như sử dụng biến và các module như ngx_http_map_module, ngx_http_rewrite_module, hoặc ngx_http_lua_module. Dưới đây là một số cách thực hiện:

 

Sử dụng ngx_http_map_module:

4.1/ Bạn có thể sử dụng module này để ánh xạ các subdomain tới các thư mục hoặc tệp cụ thể

Ví dụ:

map $host $subdomain {

    "~^(?.+)\.example\.com$"  $sub;

}

 

server {

    server_name ~^(?.+)\.example\.com$;

    root /var/www/$subdomain;

}

Trong ví dụ này, $subdomain sẽ chứa giá trị của subdomain được trích xuất từ biến $host. Sau đó, bạn có thể sử dụng $subdomain để định tuyến yêu cầu đến thư mục tương ứng.

4.2/ Sử dụng ngx_http_rewrite_module

 

Bạn có thể sử dụng module này để tái viết (rewrite) các yêu cầu dựa trên subdomain.

Ví dụ:

server {

    server_name ~^(?.+)\.example\.com$;

    rewrite ^(.*)$ /index.php?subdomain=$sub last;

}

Trong ví dụ này, tất cả các yêu cầu đến các subdomain sẽ được tái viết để chuyển hướng tới một tệp hoặc thư mục cụ thể.

 

4.3/Sử dụng ngx_http_lua_module

Module này cho phép bạn sử dụng Lua trong cấu hình của Nginx. Bạn có thể viết các đoạn mã Lua để xử lý dynamic subdomain một cách linh hoạt. Ví dụ:

server {

    server_name ~^(?.+)\.example\.com$;

    set $subdomain $sub;

    access_by_lua_block {

        if ngx.var.sub == "admin" then

            ngx.exec("/admin" .. ngx.var.uri)

        elseif ngx.var.sub == "blog" then

            ngx.exec("/blog" .. ngx.var.uri)

        else

            ngx.exec("/default" .. ngx.var.uri)

        end

    }

}

Trong ví dụ này, các subdomain sẽ được xử lý theo các luật trong đoạn mã Lua, và các yêu cầu sẽ được chuyển hướng tương ứng.

 

5./ Cấu hình Dynamic Subdomain trên Haproxy

Trong HAProxy, bạn có thể cấu hình dynamic subdomain bằng cách sử dụng ACLs (Access Control Lists) và các directive như use_backend hoặc redirect. Dưới đây là một ví dụ về cách thực hiện:

 

frontend http_frontend

    bind *:80

    mode http

 

    acl subdomain_admin hdr_beg(host) -i admin.

    acl subdomain_blog hdr_beg(host) -i blog.

 

    use_backend admin_servers if subdomain_admin

    use_backend blog_servers if subdomain_blog

    default_backend default_servers

 

backend admin_servers

    mode http

    server admin1 192.168.0.101:80

 

backend blog_servers

    mode http

    server blog1 192.168.0.102:80

 

backend default_servers

    mode http

    server default1 192.168.0.100:80

 

 

Trong ví dụ này:

  • HAProxy sẽ kiểm tra subdomain của yêu cầu bằng cách sử dụng các ACLs (subdomain_admin và subdomain_blog).
  • Nếu subdomain là "admin.", yêu cầu sẽ được định tuyến tới backend admin_servers.
  • Nếu subdomain là "blog.", yêu cầu sẽ được định tuyến tới backend blog_servers.
  • Trong trường hợp không có subdomain nào khớp, yêu cầu sẽ được định tuyến tới backend default_servers.

Điều này cho phép bạn cấu hình dynamic subdomain và định tuyến yêu cầu tới các backend tương ứng dựa trên subdomain của yêu cầu HTTP.

 

Trên đây là chia sẻ về Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy.

Trong quá trình thực hiện, nếu gặp bất kỳ khó khăn nào, bạn vui lòng liên hệ các kỹ thuật viên của CloudX đđược nhanh chóng hỗ trợ.! Nếu thấy bài viết này hữu ích hãy subscribe để theo dõi những thông tin mới nhất từ CloudX nhé. Chúc các bạn thành công!

 

H sinh thái ca CloudX:

  • Tư vấn miễn phí hệ thống CNTT cho doanh nghiệp
  • Miễn phí đăng ký dùng thử Cloud Server, Cloud VPS, Hosting (lưu trữ website, phần mềm, xử lý dữ liệu)
  • Xmail - Email tên miền doanh nghiệp
  • Server vật lý, cho thuê chỗ đặt Server tại các Datacenter hàng đầu Việt Nam
  • Dịch vụ quản trị máy chủ, Outsource CNTT, quản trị hệ thống mạng doanh nghiệp, IT Support
  • Miễn phí cài đặt, vận hành quản trị phần mềm trường học ảo E-Learning Canvas LMS (được đánh giá LMS E-Learning tốt nhất thế giới)
  • Triển khai, quản trị Firewall cho doanh nghiệp
  • Các giải pháp về Monitor, Alert Cảnh báo, Sao lưu - Backup dữ liệu từ xa cho máy chủ, Cloud, VPS.
  • Thiết kế website chuyên nghiệp

Xin vui lòng liên h Hotline/Zalo: 0983.357.585 đ đưc tư vn tn tình

BÀI VIẾT CÙNG CHUYÊN MỤC

Hướng dẫn Extend Disk ổ C trên Windows Server 2022, 2019…
Hướng dẫn Extend Disk ổ C trên Windows Server 2022, ...

Hướng dẫn Extend Disk ổ C trên Windows Server 2022, 2019…

Canvas LMS Hướng dẫn đăng nhập – Tạo khóa học mới và Copy khóa học đã có
Canvas LMS Hướng dẫn đăng nhập – Tạo khóa học mới và ...

Canvas LMS Hướng dẫn đăng nhập – Tạo khóa học mới và Copy khóa học đã có

Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy
Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình ...

Tìm hiểu và cấu hình Dynamic subdomain, ví dụ cấu hình trên nginx và haproxy

Hướng dẫn cài đặt MSSQL 2019 Standard Edition
Hướng dẫn cài đặt MSSQL 2019 Standard Edition

Hướng dẫn cài đặt MSSQL 2019 Standard Edition

5 phần mềm quản lý đào tạo - LMS tốt nhất năm 2024
5 phần mềm quản lý đào tạo - LMS tốt nhất năm 2024

5 phần mềm quản lý đào tạo - LMS tốt nhất năm 2024

Tổng quan về giải pháp Cisco ACI
Tổng quan về giải pháp Cisco ACI

Tổng quan về giải pháp Cisco ACI