Lưu trữ ảo là một phương pháp lưu trữ nhiều tên miền trên một máy chủ duy nhất. Có hai loại lưu trữ ảo: Name-based virtual hosting và IP-based virtual hosting. Với lưu trữ ảo dựa trên tên, bạn có thể lưu trữ nhiều trang web trên một máy với một địa chỉ IP duy nhất.
Ở đây, chúng tôi sẽ lưu trữ hai trang web – cụ thể là www.virtualhost1.com và www.virtualhost2.com – trên một IP duy nhất 192.168.1.227 trên phục vụ web Apache, máy chủ web phổ biến nhất trên thế giới.
Lưu ý: trong khi máy chủ Ubuntu 14.04 được sử dụng cho hướng dẫn này, hướng dẫn sẽ tương tự đối với hầu hết các bản phân phối Linux.
Nội Dung Bài Viết
Bắt đầu: Cài đặt Apache
Trước tiên, bạn cần cập nhật hệ thống của mình và sau đó cài đặt Apache.
Để thực hiện việc này, hãy chạy lệnh sau:
sudo apt-get update
sudo apt-get install apache2
Để xác minh xem máy chủ Web có hoạt động hay không, hãy mở trình duyệt web và điều hướng đến URL http://192.168.1.227/ (giả sử rằng địa chỉ IP máy chủ của bạn là 192.168.1.227).
Bạn sẽ thấy rằng máy chủ web Apache đang hoạt động.
Tạo thư mục ảo
Đầu tiên, bạn cần tạo một cấu trúc thư mục chứa dữ liệu trang web mà chúng tôi sẽ phục vụ cho khách hàng.
Tạo hai thư mục cho các trang web www.virtualhost1.com và www.virtualhost2.com.
sudo mkdir -p /var/www/html/www.virtualhost1.com
sudo mkdir -p /var/www/html/www.virtualhost2.com
Ghi chú: thư mục mặc định để lưu trữ các tệp của bạn là /var/www/html. Đối với những người đang sử dụng đường dẫn tệp thay thế, bạn sẽ phải thay đổi mã trên cho phù hợp.
Bây giờ bạn cần tạo một index.html cho cả hai trang web. Điều này sẽ được phục vụ bởi máy chủ web Apache.
Tạo tệp index.html cho www.virtualhost1.com Máy chủ ảo:
sudo nano /var/www/html/www.virtualhost1.com/index.html
Thêm nội dung sau:
<html>
<head>
<title>www.virtualhost1.com</title>
</head>
<body>
<h1>Welcome To www.virtualhost1.com website</h1>
</body>
</html>
Lưu và đóng tập tin.
Tương tự, hãy tạo tệp index.html cho www.virtualhost2.com Máy chủ ảo:
sudo nano /var/www/html/www.virtualhost2.com/index.html
Thêm nội dung sau:
<html>
<head>
<title>www.virtualhost2.com</title>
</head>
<body>
<h1>Welcome To www.virtualhost2.com website</h1>
</body>
</html>
Lưu và đóng tập tin.
Thiết lập quyền sở hữu và quyền
Theo mặc định, dịch vụ Apache chạy dưới dạng www-data người dùng trong Ubuntu. Cả hai thư mục ảo mà chúng ta đã tạo trước đó đều thuộc quyền sở hữu của root. Bạn phải thay đổi quyền sở hữu của hai thư mục ảo này thành www-data, để Apache có thể đọc và ghi dữ liệu.
Để làm điều này, hãy chạy
sudo chown -R www-data:www-data /var/www/html/www.virtualhost1.com/
sudo chown -R www-data:www-data /var/www/html/www.virtualhost2.com/
Ngoài ra, bạn cần làm cho thế giới thư mục gốc web Apache (/ var / www / html) có thể đọc được để mọi người có thể đọc các tệp từ thư mục đó.
sudo chmod -R 755 /var/www/html
Tạo tệp máy chủ ảo:
Theo mặc định, Apache đi kèm với một tệp máy chủ ảo mặc định được gọi là 000-default.conf. Trước tiên, bạn cần phải tắt tệp virtualhost này.
Để thực hiện việc này, hãy chạy lệnh sau:
sudo a2dissite 000-default.conf
Bây giờ, hãy tạo một tệp máy chủ ảo www.virtualhost1.com.conf cho máy chủ ảo www.virtualhost1.com.
sudo nano /etc/apache2/sites-available/www.virtualhost1.com.conf
Thêm nội dung sau:
<VirtualHost *:80>
ServerAdmin admin@virtualhost1.com
ServerName www.virtualhost1.com
DocumentRoot /var/www/html/www.virtualhost1.comErrorLog ${APACHE_LOG_DIR}/www.virtualhost1.com_error.log
CustomLog ${APACHE_LOG_DIR}/www.virtualhost1.com_access.log combined
</VirtualHost>
Lưu và đóng tập tin.
Tương tự, tạo một tệp máy chủ ảo www.virtualhost2.com.conf cho máy chủ ảo www.virtualhost2.com.
sudo nano /etc/apache2/sites-available/www.virtualhost2.com.conf
Thêm nội dung sau:
<VirtualHost *:80>
ServerAdmin admin@virtualhost2.com
ServerName www.virtualhost2.com
DocumentRoot /var/www/html/www.virtualhost2.comErrorLog ${APACHE_LOG_DIR}/www.virtualhost2.com_error.log
CustomLog ${APACHE_LOG_DIR}/www.virtualhost2.com_access.log combined
</VirtualHost>
Lưu và đóng tập tin.
Sau khi tạo tệp máy chủ ảo, bạn cần kích hoạt máy chủ ảo mới.
Bạn có thể làm điều này bằng cách chạy
sudo a2ensite www.virtualhost1.com.conf
sudo a2ensite www.virtualhost2.com.conf
Cuối cùng, khởi động lại dịch vụ Apache.
sudo /etc/init.d/apache2 restart
Kiểm tra máy chủ ảo:
Bạn cần thêm một mục nhập máy chủ lưu trữ trên mỗi và mọi hệ thống từ xa hoặc cục bộ để phân giải trang web theo tên.
Bạn có thể làm điều này bằng cách chỉnh sửa /etc/hosts.
Thêm các dòng sau:
192.168.1.227 www.virtualhost1.com
192.168.1.227 www.virtualhost2.com
Lưu và đóng tập tin.
Mở trình duyệt web của bạn và điều hướng đến các URL http://www.virtualhost1.com và http://www.virtualhost2.com.
Bạn sẽ thấy các trang demo mẫu mà chúng tôi đã tạo trước đó.
Trang demo www.virtualhost1.com:
Trang demo www.virtualhost2.com:
Sự kết luận
Tôi hy vọng bài đăng này sẽ giúp bạn thiết lập máy chủ ảo trong Ubuntu. Không có giới hạn về số lượng máy chủ ảo Apache có thể xử lý, vì vậy bạn có thể tạo và lưu trữ bao nhiêu trang web bạn muốn.
Bài viết này có hữu ích không?