Virtual Host là gì? Tạo Virtual Host trên Apache | Việt Nét
Virtual Host là một khái niệm đã không còn gì xa lạ với lập trình viên khi Public các trang Web của mình lên Internet. Tuy nhiên, có một bộ phận người mới, hoàn toàn chưa hiểu hết về Virtual Host cũng như cách áp dụng vào thực tiễn trên máy chủ Server. Bài viết dưới đây sẽ giải đáp Virtual Host là gì, cùng Việt Nét theo dõi nhé.
Virtual Hosts là gì?
Virtual Host là một dạng lưu trữ mà bạn lưu được nhiều domain khác nhau trên cùng một máy chủ sever. Hiện nay Virtual được xem là một giải pháp tiết kiệm chi phí vì nó cho phép bạn nhúng nhiều domain trên một địa chỉ IP trong một Sever. Server sẽ tự động hiểu tên miền nào đang vận hành bên trong vị trí lưu trữ Server tùy theo cách cài đặt của bạn.
Virtual Hosts được xem là một giải pháp tối ưu vừa tiết kiệm chi phí vừa được trải nghiệm tốt khi sử dụng nhiều tên miền chỉ trên một địa chỉ IP của Server. Bên cạnh đó, Virtual Hosting còn mang đến khá nhiều lợi ích trong quá trình sử dụng như:
- Bạn có thể dễ dàng thao tác vào một thư mục lưu trữ Code nào và không phải copy Code vào htdocs trong giao diện XAMPP.
- Trong quá trình thiết lập ban đầu, nếu bạn phân vùng lưu trữ Code ở một Folder Code nhất định, thì bạn sẽ không tốn thời gian sao lưu lại dữ liệu trong Folder Code khi cài đặt lại hệ điều hành Window.
Cách thức vận hành của Virtual Host
Có nhiều cách khác nhau để xác định cấu hình của một Virtual Host, nhưng cách được sử dụng thông dụng ngày nay là:
- IP Based.
- Port – Based.
- Name Based.
IP Based
IP-Based Virtual Hosts (xác định website dựa theo IP): Đây là phương pháp đơn giản nhất trong 3 phương pháp, Một IP sử dụng cho 1 Website. Máy chủ web sẽ chịu trách nhiệm ánh xạ IP được yêu cầu có đế đến đúng website mong muốn hay không. Vì thế, mỗi trang web sẽ được định nghĩa bởi 1 IP duy nhất nhằm tránh những vấn đề không đáng có cho trang web liên quan đến địa chỉ IP. Tuy nhiên IP-Based (dùng trên 1 máy chủ) cần thiết lập Virtual Interface trên 1 máy chủ để có thể sử dụng được nhiều IP.
Port Based
Port Based tương đương với IP-Based, nhưng sự khác biệt ở phương thức này là có thể quản lý nhiều trang web dựa theo số Port được định nghĩa cùng với IP hoặc tên miền. Ngoài ra, Port sử dụng tránh lặp lại với Port được mặc định của ứng dụng khác khi đang hoạt động.
Name Based
Name Based (xác định website dựa theo tên – Domain Name): Nhiều website sử dụng chung 1 IP. Server sẽ đối chiếu http header từ client yêu cầu để ánh xạ đến đúng website được chỉ định theo Domain. Cho nên, Name-Based rất được ưa thích trong việc quản lý nhiều trang web trên cùng 1 máy chủ và trước tình trạng thế giới đang dần cạn kiệt IP Public, đồng thời sử dụng tối đa tài nguyên hiện có. Hạn chế lớn nhất khi bạn dùng IP chung, nếu gặp vấn đề thì tất cả các trang web của bạn đều sẽ bị ảnh hưởng theo.
Hướng dẫn tạo Virtual Host trên Apache nhanh chóng
Để tạo Virtual Host trên Apache thành công, bạn cần lưu ý một số yêu cầu sau:
Yêu cầu
Bạn cần có hệ điều hành Ubuntu và đã cài đặt Apache.
Nếu ai chưa có Apache, đầu tiên hãy cài đặt với các bước thứ tự như sau:
sudo apt-get update
sudo apt-get install apache2
- Test1.com.
- Test2.com.
Bước 1: Tạo Cấu trúc Folder
Việc tạo cấu trúc folder dùng để lưu trữ dữ liệu của người dùng, hoặc chứa dữ liệu của người dùng khi truy cập vào trang web.
Cho nên, chúng ta cần tạo thư mục cấu trúc sau thư mục gốc ( /var/wwwdirectory)
sudo mkdir -p /var/www/test1.com/public_html
sudo mkdir -p /var/www/test2.com/public_html
Bước 2: Cấp quyền
Như bạn cũng biết, thư mục cấu trúc mà chúng ta vừa tạo quyền quản trị thuộc tài khoản root. Vì vậy, nếu bạn muốn thay đổi để sửa đổi các tệp trong thư mục web, có thể thực hiện bằng cách sau đây:
sudo chown -R $USER:$YOUR_USER_NAME /var/www/test1.com /public_html
sudo chown -R $USER:$ YOUR_USER_NAME /var/www/test2.com /public_html
Bước 3: Tạo các trang demo cho từng Virual Host
Đầu tiên, cần tạo trang demo cho Test1.com bằng cách mở trình soạn thảo mà chọn và thực hiện một số HTML sau: vi /var/www/test1.com/public_html/index.html.
Sau khi mở, hãy viết một HTLM đơn giản, tiếp theo là lưu tệp và thoát khỏi trình chỉnh sửa.