Nếu như trước kia, Virtual Host được dùng với mục đích là lưu nhiều tên miền khác nhau trên cùng một máy chủ Server. Hiện nay, đi cùng với sự phát triển của điện toán đám mây, Virtual Host hiện phục vụ cho nhiều mục đích khác nhau. Ví dụ các loại
hosting như virtual application hosting, virtual server hosting, virtual storage hosting,…Vậy
Virtual Host là gì? Cách tạo Virtual Host trên Apache như thế nào? Cùng theo dõi bài viết dưới đây để tìm hiểu tất tần tật thông tin về Virtual Host là gì nhé!
Virtual Host là gì?
Virtual Hosts là một phương thức lưu trữ cho phép người dùng có thể lưu nhiều tên miền khác nhau trên cùng một máy chủ Server. Đây được xem là một giải pháp hoàn hảo, lý tưởng cho phép bạn nhúng nhiều tên miền khác nhau trên một địa chỉ IP của một Server duy nhất. Tùy vào những cách cài đặt mà Server sẽ tự hiểu tên miền nào đang hoạt động bên trong vị trí lưu trữ của Server.
So với việc sử dụng nhiều tên miền chỉ trên một địa chỉ IP của Sever thì Virtual Host được xem là một giải pháp hoàn hảo hiện nay. Bởi vì không những mang lại hiệu quả, Virtual Host còn giúp người dùng tiết kiệm được khá nhiều chi phí. Và bên cạnh đó thì Virtual Host còn mang đến khá nhiều lợi ích khác nhau trong quá trình sử dụng như:
- Khi sử dụng Virtual Host, người dùng có thể dễ dàng truy cập vào bất kỳ một thư mục lưu trữ Code nào. Bên cạnh đó hoàn toàn không cần phải copy Code vào htdocs trong giao diện XAMPP. Điều này là vô cùng tiện lợi, giúp tiết kiệm được rất nhiều thời gian.
- Trong quá trình thiết lập ban đầu, nếu như phân vùng lưu trữ Code ở một Folder Code nhất định. Thì khi tiến hành các bước cài lại hệ điều hành Window, bạn hoàn toàn không cần phải sao lưu đồng bộ lại dữ liệu trong Folder Code.
Có rất nhiều cách khác nhau để bạn có thể xác định được cấu hình của một Virtual Host. Tuy nhiên có 3 cách thông dụng và được áp dụng phổ biến hiện nay là:
- IP Based Virtual Hosts: So với 3 phương pháp thì đây là phương pháp đơn giản được nhiều người áp dụng nhất. Bởi vì một IP sử dụng cho 1 Website nên chính vì vậy mà 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à nhằm tránh những vấn đề không đáng có cho website có liên quan tới địa chỉ IP, mỗi trang web sẽ được định nghĩa bởi 1 IP duy nhất. Tuy nhiên nhược điểm của IP-Based là đòi hỏi người dùng cần thiết lập Virtual Interface trên 1 máy chủ. Bởi chỉ có thể làm như vậy, bạn mới có thể sử dụng được nhiều IP.
- Port – Based: Port Based tương đương và có khá nhiều điểm tương đồng so với IP-Based. Tuy nhiên điểm khác biệt lớn nhất giữa 2 phương thức này là Port Based có thể quản lý nhiều website dựa theo số Port được định nghĩa cùng với IP hoặc tên miền. Bên cạnh đó Port sử dụng còn 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: Máy chủ ảo dựa trên tên sử dụng địa chỉ IP duy nhất cho tất cả các miền trên máy chủ nhất định. Khi trình duyệt đang cố gắng kết nối với máy chủ, nó sẽ gửi một thông báo tới máy chủ thông báo về tên miền mà nó đang cố gắng kết nối. Khi tên miền được cung cấp thì máy chủ sẽ tiến hàng kiểm tra cấu hình máy chủ lưu trữ. Và từ đó sẽ trả về yêu cầu với trang web chính xác.
Apache là gì?
Apache hay còn được gọi với cái tên là Apache HTTP Server. Theo đó Apache là chương trình máy chủ cho phép người dùng có thể dễ dàng giao tiếp bằng giao thức HTTP. Bên cạnh đó còn giúp người dùng có thể điều khiển hay thiết lập hoạt động của những website trên hầu hết các hệ điều hành.
Theo thống kê Apache đang chiếm tỷ lệ sử dụng rất cao lên tới khoảng 47% trong tổng số thị phần website đang hoạt động. Một trong những ưu điểm lớn nhất mà Apache mang lại là cho phép quản trị viên có thể tùy chỉnh và đưa nội dung lên Website một cách dễ dàng. Tuy nhiên không chỉ dừng lại ở đó, Apache còn là cổng giao tiếp phù hợp nhất giữa Server và các trình duyệt Web ví dụ như: Firefox, Cốc Cốc, Chrome, Safari,…Từ đó cho phép người dùng có thể thực hiện truyền hoặc nhận dữ liệu theo dạng Client-Server.
Cách tạo Virtual Host trên Apache
Cách tạo Virtual Host trên Apache thế nào luôn là băn khoăn, thắc mắc của người dùng. Dưới đây chúng tôi sẽ bật mí tới bạn đọc các bước tạo 2 Virtual Host để chạy 2 Web cùng lúc trên Server:
Tạo thư mục lưu trữ cho website
Trước tiên, điều quan trọng nhất mà bạn cần làm là tạo ra hai thư mục để chứa tập tin và dữ liệu của hai website. Giả sử mặc định Apache sử dụng /var/www làm thư mục chủ. Và chúng ta sẽ tiến hàng sẽ tạo ra hai thư mục ở đó để lưu trữ dữ liệu cho hai website. Bạn có thể tạo thư mục ở bất kỳ đâu mà bạn muốn, cụ thể trong trường hợp này, chúng tôi sẽ tạo ra 2 thư mục là
/var/www/mona1.com và /var/www/mona2.com.
Thông thường, người ra chỉ sử dụng một thư mục con để lưu trữ dữ liệu nhằm xử lý trang web cho người truy cập là
public_html. Điều này nhằm mục đích chính là phục vụ việc lưu trữ dữ liệu một cách linh hoạt. Theo đó thì bạn hoàn toàn có thể lưu dữ liệu chỉ dành cho admin ở một thư mục khác.
Để tạo 2 thư mục thì bạn có thể áp dụng 2 lệnh như sau:
$ sudo mkdir -p /var/www/mona1.com/public_html
$ sudo mkdir -p /var/www/mona2.com/public_html
Tạo tập tin để cấu hình Virtual Host với phần mềm Apache
Kế tiếp bạn cần tạo tập tin để cấu hình Virtual Host với phần mềm Apache. Theo đó trên Ubuntu, các tập tin cấu hình virtual host của Apache sẽ nằm ở trong thư mục /etc/apache2/sites-available. Và cũng tại đây, bạn sẽ nhìn thấy được hai virtual host mặc định là
000-default.conf và
default-ssl.conf.
Để kiểm tra các virtual host có sẵn thì bạn có thể áp dụng theo lệnh sau:
$ ls -l /etc/apache2/sites-available
Sau đó bạn tiến hành sao chép 2 virtual host mặc định cho hai tên miền mới là:
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mona1.com.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mona2.com.conf
Bước tiếp theo là mở và chỉnh sửa tập tin cấu hình:
$ sudo nano /etc/apache2/sites-available/mona1.com.conf
Những thông tin cần phải cấu hình lại gồm có:
- ServerName: Tại đây, bạn cần sở hữu lại domain của mình. Ví dụ ở trên, chúng tôi đang để mona1.com. Theo đó tên này bạn hoàn toàn có thể thay thế để phù hợp hơn với thương hiệu của mình.
- ServerAdmin: Thêm email của bạn cho domain này.
- DocumentRoot: Thư mục này sẽ lưu trữ trang web mà bạn đã tạo ở trên. Và trong trường hợp ở trên là /var/www/mona1.com/public_html
- ServerAlias: Theo mặc định thì sẽ không có mục này. Tuy nhiên bạn cũng hoàn toàn có thể thêm nó ở phía dưới ServerName.
Sau khi hoàn tất việc tạo tập tin để cấu hình Virtual Host thứ nhất thì bạn lưu lại và tiếp tục mở tập tin virtual host thứ 2:
$ sudo nano /etc/apache2/sites-available/mona2.com.conf
Và đối với tập tin thứ 2 thì cách thực hiện cũng tương tự như tập tin thứ nhất.
Bật Virtual Host để các cấu hình vừa cài đặt bắt đầu hoạt động
Để bật Virtual Host thì bạn có thể sử dụng lệnh sau:
$ sudo a2ensite mona1.com.conf
$ sudo a2ensite mona2.com.conf
Sau đó tiến hành khởi động lại máy chủ web Apache theo lệnh:
$ sudo service apache2 restart
Trong quá trình khởi động, một số trường hợp là bạn sẽ gặp thông báo sau: “AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message”. Tuy nhiên bạn cũng đừng quá lo lắng về thông báo này. Bởi nó không ảnh hưởng gì tới website của bạn đâu nhé!
Kiểm tra sự hoạt động của Virtual Host vừa tạo trên Apache
Sau khi hoàn tất các bước trên thì bạn cần kiểm tra lại xem việc tạo virtual host trên Apache xem đã đúng chưa. Để có thể kiểm tra được sự hoạt động của Virtual Host thì bạn cần phải tạo 2 tập tin và chạy nó trên trình duyệt. Tạo tập tin
index.html trong:
/var/www/mona1.com/public_html
/var/www/mona2.com/public_html
Theo đó bạn có thể áp dụng lệnh như sau:
$ sudo nano /var/www/mona1.com/public_html/index.html
$ sudo nano /var/www/mona2.com/public_html/index.html
Cuối cùng là bạn trỏ domain về IP của server. Và sau khi DNS được cập nhật thì bạn truy cập vào địa chỉ mona1.com và mona2.com xem có được không. Trong trường hợp nếu như bạn tìm thấy website hiển thị đúng như hình bên dưới thì việc thêm domain vào
VPS của bạn đã thành công.
Trên đây là toàn bộ thông tin về
Virtual Host là gì, chi tiết cách tạo Virtual Host trên Apache mà
Mona Media muốn chia sẻ tới bạn đọc. Hy vọng qua những chia sẻ về Virtual Hosts là gì ở bài viết mang tới cho bạn đọc nhiều thông tin bổ ích để có thể từ đó tự tạo Virtual Host trên Apache thành công!