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 trang web trên một máy chủ duy nhất. Có hai loại lưu trữ ảo: Tên dựa trên lưu trữ ảo và lưu trữ ảo dựa trên IP. Lưu trữ ảo dựa trên IP là một kỹ thuật áp dụng các chỉ thị khác nhau dựa trên địa chỉ IP và cổng mà yêu cầu được nhận. Bạn có thể gán một IP riêng biệt cho mỗi tên miền trên một máy chủ duy nhất bằng cách sử dụng lưu trữ ảo dựa trên IP. Chủ yếu là điều này được sử dụng để lưu trữ các trang web khác nhau trên các cổng hoặc IP khác nhau.

Ở đây chúng tôi sẽ lưu trữ “www.ipvhost1.com” trên IP “192.168.1.227”, “www.ipvhost2.com” trên IP “192.168.1.228” và “www.portvhost.com” trên IP “192.168.1.228” với Cổng 8080.

Yêu cầu

  • Hệ điều hành: Máy chủ Ubuntu 14.04 với cài đặt Apache
  • Địa chỉ IP1: 192.168.1.227
  • Địa chỉ IP2: 192.168.1.228
  • Tên miền: www.ipvhost1.com
  • Tên miền: www.ipvhost2.com
  • Tên miền: www.portvhost.com

Tạo nhiều địa chỉ IP trên giao diện mạng đơn

Để thiết lập lưu trữ ảo dựa trên IP, bạn phải có nhiều hơn một địa chỉ IP được gán cho máy Linux của mình. Thiết lập nhiều địa chỉ IP trên một giao diện mạng đơn lẻ được gọi là bí danh IP. Bí danh IP rất hữu ích nếu bạn chỉ có một thẻ giao diện mạng.

Để thực hiện điều này, bạn cần chỉnh sửa tệp “/ etc / network / interfaces”.

 sudo nano / etc / network / interfaces 

Thêm các dòng sau:

 tự động eth0 iface eth0 inet địa chỉ tĩnh 192.168.1.227 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 auto eth0: 1 iface eth0: 1 inet địa chỉ tĩnh 192.168.1.228 netmask 255.255.255.0 

Lưu và đóng tệp, sau đó khởi động lại dịch vụ mạng để thực hiện những thay đổi này có hiệu lực.

 sudo /etc/init.d/networking restart sudo ifup eth0: 1 

Thiết lập nhiều trường hợp của Apache

Theo mặc định, Apache nghe trên cổng 80. Đối với lưu trữ ảo dựa trên cổng, bạn cần yêu cầu Apache nghe IP “192.168.1.227” và “192.168.1.228” trên cổng 80 và IP “192.168.1.228” trên cổng 8080.

Để thiết lập nhiều cổng, bạn cần chỉnh sửa “/etc/apache2/ports.conf”.

 sudo nano /etc/apache2/ports.conf 

Thêm dòng sau:

 Nghe 192.168.1.227:80 Nghe 192.168.1.228:80 Nghe 192.168.1.228:8080 

Lưu và đóng tệp, sau đó khởi động lại Apache để thực hiện các thay đổi này có hiệu lực.

 sudo /etc/init.d/apache2 khởi động lại 

Tạo thư mục ảo

Đầu tiên, bạn cần tạo một cấu trúc thư mục để giữ các trang web. Thư mục này được gọi là DocumentRoot cho tên miền.

Tạo ba thư mục cho các trang web “www.ipvhost1.com”, “www.ipvhost2.com” và “www.portvhost.com” dưới thư mục DocumentRoot mặc định của Apache.

 sudo mkdir -p /var/www/html/www.ipvhost1.com sudo mkdir -p /var/www/html/www.ipvhost2.com sudo mkdir -p /var/www/html/www.portvhost.com 

Tạo các trang Web thử nghiệm cho mỗi máy chủ ảo

Tạo tệp “index.html” cho mỗi trang web xác định IP và Cổng cụ thể.

Tạo tệp index.html cho máy chủ ảo “www.ipvhost1.com”.

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

Thêm nội dung sau.

 www.ipvhost1.com 

Lưu và đóng tệp khi bạn hoàn tất.

Tạo tệp “index.html” cho máy chủ ảo “www.ipvhost2.com”.

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

Thêm nội dung sau.

 www.ipvhost2.com 

Lưu và đóng tệp khi bạn hoàn tất.

Tạo tệp “index.html” cho máy chủ ảo “www.portvhost.com”.

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

Thêm nội dung sau.

 www.portvhost.com 

Lưu và đóng tệp khi bạn hoàn tất.

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. Bạn phải thay đổi quyền sở hữu của ba thư mục ảo này thành “www-data” để Apache có thể đọc và ghi dữ liệu.

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

 sudo chown -R www-data: www-data /var/www/html/www.ipvhost1.com sudo chown -R www-data: www-data /var/www/html/www.ipvhost2.com sudo chown -R www-data: www-data /var/www/html/www.portvhost.com 

Ngoài ra, bạn cần phải chắc chắn rằng 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ừ đó.

 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 vô hiệu hóa tệp máy chủ ảo này.

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

 sudo a2dissite 000-default.conf 

Bước tiếp theo là tạo tệp cấu hình máy chủ ảo cho mỗi trang web. Tên của mỗi tệp cấu hình phải kết thúc bằng ".conf".

Tạo tệp máy chủ ảo cho trang web “www.ipvhost1.com”.

 sudo nano /etc/apache2/sites-available/www.ipvhost1.com.conf 

Thêm nội dung sau.

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

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

Tạo một tệp máy chủ ảo cho trang web “www.ipvhost2.com”.

 sudo nano /etc/apache2/sites-available/www.ipvhost2.com.conf 

Thêm nội dung sau.

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

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

Tạo một tệp máy chủ ảo cho trang web “www.portvhost.com”.

 sudo nano /etc/apache2/sites-available/www.portvhost.com.conf 

Thêm nội dung sau.

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

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

Sau khi tạo tệp máy chủ ảo, bạn cần bật máy chủ ảo.

Bạn có thể làm điều này bằng cách chạy.

 sudo a2ensite www.ipvhost1.com.conf sudo a2ensite www.ipvhost2.com.conf sudo a2ensite www.portvhost.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ây giờ, đã đến lúc kiểm tra IP Virtualhost. Trên máy tính, mở trình duyệt web của bạn và điều hướng đến các URL “http://192.168.1.227:80” và “http://192.168.1.228:80”. Bạn sẽ thấy các trang demo mẫu cho lưu trữ ảo dựa trên IP trông giống như sau:

Tương tự, để kiểm tra Port Virtualhost, hãy mở trình duyệt web của bạn và điều hướng đến URL “http://192.168.1.228:8080”. Bạn sẽ thấy một trang demo mẫu cho máy chủ ảo dựa trên cổng trông giống như sau:

Phần kết luận

Trong bài này, tôi đã chỉ ra quy trình từng bước để tạo và kích hoạt một máy chủ ảo dựa trên IP và dựa trên cổng trên máy chủ web Apache. Bạn có thể dễ dàng thiết lập nhiều tên miền trên cùng một máy chủ.