Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

Virtual hosting 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: “Lưu trữ ảo dựa trên tên” và “lưu trữ ảo dựa trên IP”. Với máy chủ ảo dựa trên tên, bạn có thể lưu trữ nhiều trang web trên một máy duy nhất 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 “192.168.1.227” trên trang web Apache phục vụ, 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, các hướng dẫn sẽ tương tự với hầu hết các bản phân phối Linux.

Bắt đầu: Cài đặt Apache

Trước tiên, bạn cần phải cập nhật hệ thống của bạn và sau đó cài đặt Apache.

Để thực hiện việc này, hãy chạy lệnh sau:

 sudo apt-get cập nhật sudo apt-get cài đặt apache2 

Để xác minh xem máy chủ Web có đang 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ả định 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

Trước tiên, bạn cần tạo cấu trúc thư mục để lưu trữ dữ liệu trang web mà chúng tôi sẽ phân phát 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 

Lưu ý : 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 phải tạo một tệp "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 máy chủ ảo “www.virtualhost1.com”:

 sudo nano /var/www/html/www.virtualhost1.com/index.html 

Thêm nội dung sau:

 www.virtualhost1.com 

Lưu và đóng tập tin.

Tương tự, tạo tệp index.html cho máy chủ ảo “www.virtualhost2.com”:

 sudo nano /var/www/html/www.virtualhost2.com/index.html 

Thêm nội dung sau:

 www.virtualhost2.com 

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 người dùng “www-data” trong Ubuntu. Cả hai thư mục ảo mà chúng tôi đã tạo trước đó đều thuộc 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-dữ liệu: www-data /var/www/html/www.virtualhost2.com/ 

Ngoài ra, bạn cần phải làm cho 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 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ờ, 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:

 ServerAdmin [email protected] Tên máy chủ www.virtualhost1.com DocumentRoot /var/www/html/www.virtualhost1.com ErrorLog $ {APACHE_LOG_DIR} /www.virtualhost1.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.virtualhost1.com_access. nhật ký kết hợp 

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:

 ServerAdmin [email protected] Tên máy chủ www.virtualhost2.com DocumentRoot /var/www/html/www.virtualhost2.com ErrorLog $ {APACHE_LOG_DIR} /www.virtualhost2.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.virtualhost2.com_access. nhật ký kết hợp 

Lưu và đóng tập tin.

Sau khi tạo các tệp máy chủ ảo, bạn cần bật mộ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 khởi động lại 

Kiểm tra máy chủ ảo:

Bạn cần phải thêm một mục lưu trữ trên mỗi và mọi hệ thống từ xa hoặc cục bộ để giải quyết trang web theo tên.

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp "/ etc / hosts".

 sudo nano / 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 đó.

www.virtualhost1.com trang demo:

www.virtualhost2.com trang demo:

Phần kết luận

Tôi hy vọng bài viết 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 virtualhost 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.