Hotline : 1800 1093 - 07 088 44444
Share

Virtual Hosts là gì? Hướng dẫn tạo nhiều Virtual Host trên Apache nhanh chóng

26/04/2022

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 Vietnix theo dõi nhé.

Virtual Hosts là gì?

Virtual Hostmộ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 là gì?
Virtual Hosts là gì?

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.

Port Based
Port Based

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.

Name Based
Name Based

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
  1. Test1.com.
  2. 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.

<html>
<head>
<title>Home Page of Test1.com<title>
</head>
<body>
<h1>Success! The test1 virtual host is working!</h1>
</body>
</html>

Tương tự, bạn có thể dễ dàng tạo HTML cho các trang website khác. Ví dụ: Test2.com/Test3.com.

vi /var/www/test2.com/public_html/index.html
<html>
<head>
<title>Home Page of Test2.com<title>
</head>
<body>
<h1>Success! The test2 virtual host is working!</h1>
</body>
</html>

Bước 4: Tạo tập tin mới cho Virtual Host

Các tệp Virtual host là các tệp chứa thông tin và cấu hình cụ thể cho từng miền, ví dụ: chúng ta có thể có cấu hình Apache toàn cầu và các tùy chọn độc lập cho một miền cụ thể.
Apache bao gồm một tệp Virual host mặc định có tên 000-default.conf mà chúng ta có thể sử dụng.
Đầu tiên , bạn sẽ tạo một bản sao để làm việc với nó và tạo Virual host cho mỗi miền.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sitesavailable/test1.conf

Sau khi thao tác xong, hãy mở lên với trình chỉnh sửa của bạn. Và nó sẽ trông như bên dưới đây:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Tại đây, bạn cần thay đổi email để thay thế bằng địa chỉ email quản trị server.

ServerAdmin admin@test1.com

Tiếp theo là thêm địa chỉ: Servername (Nên dùng tên miền của bạn) và ServerAlias. Kết quả nhận được sẽ là:

banner web hosting

ServerName test1.com
ServerAlias www.test2.com

Cuối cùng, vui lòng thay đổi vị trí của Document root cho domain này. Kết quả sẽ là:

DocumentRoot /var/www/test1.com/public_html.

Tương tự, bạn thao tác đúng quy trình như trên cho domain thứ 2.

Bước 5: Kích hoạt file Virual Host mới

Chúng ta vừa tạo các file server ảo của bạn, bây giờ chúng ta phải kích hoạt nó. Thao tác thứ tự theo các lệnh dưới đây:

sudo a2ensite test1.com.conf
sudo a2ensite test2.com.conf

Sau khi hoàn tất, bạn cần khởi động lại Apache.

sudo service apache2 restart

Bước 6: Kiểm tra kết quả

Mở trình duyệt web và kích hoạt tên miền của từng trang web của bạn và kết quả sẽ giống như dưới đây:

Tạo thành công Virtual Host
Tạo thành công Virtual Host

Nếu tạo thành công, thì bạn sẽ có một server duy nhất xử lý hai tên miền riêng biệt. Tại đây, người dùng có thể thao tác tương tự quy trình này theo các bước như trên để tạo thêm các server ảo. Không quy định số lượng phần mềm về số lượng tên miền mà Apache có thể xử lý, vì vậy hãy thoải mái tạo ra càng nhiều càng tốt để server của bạn có thể xử lý.

Ngoài ra, Vietnix ngoài cung cấp các gói hosting, VPS và các sản phẩm máy chủ ra thì còn có dịch vụ giúp khách hàng trong việc tìm mua và đăng ký tên miền. Hiện tại, Vietnix có cung cấp cả tên miền trong nước và tên miền nước ngoài, phù hợp với nhiều mục đích của website. Hơn thế nữa, quá trình đăng ký tên miền vô cùng nhanh và uy tín, giúp các bạn có thể sở hữu cho mình một tên miền riêng chỉ với vài thao tác đơn giản.

Bạn có thể tham khảo dich vụ tại đây: Vietnix – Nhà cung cấp Tên miền Việt Nam và Quốc Tế chỉ từ 300.000Đ/Năm.

Lời kết

Hy vọng với bài viết trên, bạn có thể tạo Virtual Hosts trên Apache để thêm domain vào VPS và chạy nhiều website trên 1 server với số lượng không giới hạn. Nếu có điểm nào thắc mắc hãy liên hệ Vietnix để được hỗ trợ. Chúc các bạn thành công!

5/5 - (1 bình chọn)

Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận