Khái niệm lưu trữ ảo được các công ty sử dụng để lưu trữ nhiều trang web bằng một máy duy nhất. Có thể đạt được điều này bằng phương pháp 'dựa trên IP' hoặc phương pháp 'dựa trên tên'. Trong lưu trữ 'dựa trên IP', chúng ta có các địa chỉ IP riêng biệt cho mỗi trang web. Trong trường hợp lưu trữ 'dựa trên tên', chúng ta có nhiều tên chạy trên mỗi địa chỉ IP.
Bước 2. Cài đặt máy chủ web Apache cho Ubuntu bằng lệnh:
Bước 3. Khởi động lại máy chủ web Apache và kiểm tra trạng thái của nó bằng cách chạy:
Đầu ra mẫu:
Bước 4. Tạo hai thư mục mới bên trong thư mục ‘www’. Đặt các thư mục này là host1 và host2.
Một lần nữa, bên trong các thư mục này, hãy tạo thêm một thư mục nữa để lưu trữ các tệp web của bạn. Đặt các thư mục này là public_html và public_html. Các thư mục này sẽ chứa các tệp index.html tương ứng cho hai máy chủ này:
Các thư mục ‘/var/www/host1/public_html’ và ‘/var/www/host2/public_html’ cũng đại diện cho gốc tài liệu cho hai máy chủ ảo.
Bước 5. Các thư mục được tạo ở trên thuộc sở hữu của người dùng root. Để cho phép người dùng thông thường sửa đổi các tệp trong các thư mục này, quyền sở hữu phải được thay đổi bằng các lệnh sau:
Biến ‘$USER’ sẽ sử dụng giá trị của người dùng hiện đang đăng nhập. ‘public_html’ bây giờ sẽ thuộc sở hữu của người dùng này.
Bước 6. Bây giờ hãy thiết lập quyền ‘truy cập đọc’ cho thư mục web chung của apache:
Bước 7. Bây giờ chúng ta sẽ thiết lập một trang mặc định tức là index.html cho mỗi máy chủ ảo. Điều này có thể được thực hiện trực tiếp từ thiết bị đầu cuối bằng lệnh ‘echo’. Đối với máy chủ ảo1:
Đối với virtual host2:
Bước 8. Trước khi tiến hành tiếp, chúng tôi sử dụng một bước trung gian. Ở đây, chúng tôi sẽ sửa đổi tệp hosts để ánh xạ địa chỉ máy chủ cục bộ thành hai tên miền máy chủ ảo: www.host1.com và www.host2.com. Điều này được thực hiện để tránh đăng ký công khai tên miền của chúng tôi.
Các bước trên được hiển thị trong hình bên dưới:
Bước 9. Bây giờ chúng ta sẽ tạo hai tệp Máy chủ ảo cho mỗi máy chủ ảo của mình. Chúng tương tự như hai tệp cấu hình mặc định của Apache (“000-default.conf”). Bây giờ các tệp này sẽ biểu thị cấu hình được sử dụng cho các máy chủ ảo của chúng ta và cũng điều chỉnh cách các yêu cầu tên miền khác nhau được máy chủ web Apache phản hồi.
Có thể sử dụng “000-default.conf” làm tệp cơ sở cho mỗi máy chủ ảo. Chỉ cần sao chép tệp này vào cùng một vị trí với hai tên khác nhau: host1.conf và host2.conf:
Bước 10. Bây giờ hãy mở các tệp và sửa đổi chúng cho từng máy chủ ảo. Ví dụ, đối với máy chủ ảo1, các tham số sau đây phải được sửa đổi thành:
Đối với tệp thứ hai (host2.conf), hãy thay thế các mục host1 bằng host2. Ngoài ra, bạn có thể tạo hai tệp mới và nhập nội dung trên tương ứng với từng máy chủ ảo. Tệp host2.conf sẽ trông như sau:
Bước 10. Bây giờ chúng ta đã tạo các tệp máy chủ ảo, đã đến lúc thực sự kích hoạt các tệp này. Để thực hiện mục đích này, Apache cung cấp một công cụ có tên là ‘a2ensite’. Sử dụng lệnh bên dưới để bật chúng:
Bước 11. Trên thiết bị đầu cuối, bạn sẽ thấy thông báo tải lại apache để kích hoạt cấu hình mới, nhưng trước đó hãy tắt trang web mặc định được biểu thị bằng "000-default.conf" bằng lệnh:
Bước 12. Kiểm tra các tệp cấu hình xem có lỗi cú pháp nào không bằng cách sử dụng:
Bước 13. Cuối cùng, tải lại dịch vụ apache2 để áp dụng các thay đổi đã thực hiện ở trên:
Lệnh trên sẽ trả về thông báo từ trang chỉ mục virtual host1, tương tự, lệnh bên dưới sẽ hiển thị thông báo từ virtual host2:
Chúng ta sẽ đề cập đến những gì?
Trong hướng dẫn này, chúng ta sẽ xem cách lưu trữ hai máy chủ ảo trên hệ thống Ubuntu 22.04 bằng cách sử dụng lưu trữ ảo dựa trên tên. Chúng tôi sẽ sử dụng máy chủ web Apache.Bắt đầu ngay bây giờ...
Bước 1. Cập nhật kho lưu trữ và hệ điều hành:
Mã:
sudo apt update
Mã:
sudo apt upgrade -y
Mã:
sudo apt install apache2 -y
Bước 3. Khởi động lại máy chủ web Apache và kiểm tra trạng thái của nó bằng cách chạy:
Mã:
sudo systemctl restart apache2
Mã:
sudo systemctl status apache2
Đầu ra mẫu:
Mã:
? apache2.service - Máy chủ Apache HTTP
Đã tải: đã tải (/lib/systemd/system/apache2.service; đã bật; nhà cung cấp prese>
Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2022-06-27 09:32:14 UTC; 18 giây trước
Tài liệu: https://httpd.apache.org/docs/2.4/
Tiến trình: 13093 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/S>
PID chính: 13098 (apache2)
Nhiệm vụ: 55 (giới hạn: 1146)
Bộ nhớ: 4,7M
CPU: 25ms
CGroup: /system.slice/apache2.service
??13098 /usr/sbin/apache2 -k start
??13099 /usr/sbin/apache2 -k start
??13100 /usr/sbin/apache2 -k start
Bước 4. Tạo hai thư mục mới bên trong thư mục ‘www’. Đặt các thư mục này là host1 và host2.
Một lần nữa, bên trong các thư mục này, hãy tạo thêm một thư mục nữa để lưu trữ các tệp web của bạn. Đặt các thư mục này là public_html và public_html. Các thư mục này sẽ chứa các tệp index.html tương ứng cho hai máy chủ này:
Mã:
sudo mkdir -p /var/www/host1/public_html
Mã:
sudo mkdir -p /var/www/host2/public_html
Bước 5. Các thư mục được tạo ở trên thuộc sở hữu của người dùng root. Để cho phép người dùng thông thường sửa đổi các tệp trong các thư mục này, quyền sở hữu phải được thay đổi bằng các lệnh sau:
Mã:
sudo chown -R $USER:$USER /var/www/host1/public_html
Mã:
sudo chown -R $USER:$USER /var/www/host2/public_html
Bước 6. Bây giờ hãy thiết lập quyền ‘truy cập đọc’ cho thư mục web chung của apache:
Mã:
sudo chmod -R 755 /var/www
Mã:
sudo echo “Welcome to Virtual Host 1.” > /var/www/host1/public_html/index.html
Mã:
sudo echo “Welcome to Virtual Host 2.” > /var/www/host2/public_html/index.html
Mã:
sudo sh -c "echo 127.0.0.1 www.host1.com >> /etc/hosts"
Mã:
sudo sh -c "echo 127.0.0.1 www.host2.com >> /etc/hosts"
Bước 9. Bây giờ chúng ta sẽ tạo hai tệp Máy chủ ảo cho mỗi máy chủ ảo của mình. Chúng tương tự như hai tệp cấu hình mặc định của Apache (“000-default.conf”). Bây giờ các tệp này sẽ biểu thị cấu hình được sử dụng cho các máy chủ ảo của chúng ta và cũng điều chỉnh cách các yêu cầu tên miền khác nhau được máy chủ web Apache phản hồi.
Có thể sử dụng “000-default.conf” làm tệp cơ sở cho mỗi máy chủ ảo. Chỉ cần sao chép tệp này vào cùng một vị trí với hai tên khác nhau: host1.conf và host2.conf:
Mã:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/host1.conf
Mã:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/host2.conf
Mã:
ServerAdmin [emailprotected]
ServerName host1
ServerAlias www.host1.com
DocumentRoot /var/www/host1/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
Mã:
ServerAdmin [emailprotected]
ServerName host2
ServerAlias www.host2.com
DocumentRoot /var/www/host2/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
Mã:
sudo a2ensite host1.conf
Mã:
sudo a2ensite host2.conf
Mã:
sudo a2dissite 000-default.conf
Mã:
sudo apache2ctl configtest
Mã:
sudo systemctl reload apache2
Kiểm tra vhost Apache Thiết lập
Bây giờ chúng ta sẽ kiểm tra xem mọi thứ đã được thiết lập đúng chưa. Mở terminal trên máy của bạn và chạy lệnh:
Mã:
$ curl www.host1.com
Mã:
$ curl www.host2.com