Làm cách nào để trỏ 2 tên miền khác nhau đến 1 địa chỉ IP (Apache)?


11

Tôi có hai tên miền khác nhau mà tôi muốn lưu trữ trên cùng một máy chủ lưu trữ riêng mà tôi có. Tôi muốn họ trỏ đến cùng một địa chỉ IP và có nội dung khác nhau (tất nhiên). Làm thế nào tôi có thể làm điều đó? Có nhiều cách khác nhau để làm điều này? Trong trường hợp đó, cách tốt nhất là gì. Cảm ơn.

Câu trả lời:



14

Apache2 hỗ trợ phục vụ các nội dung khác nhau tùy thuộc vào tên miền, ngay cả khi tất cả các tên miền đó giải quyết cùng một địa chỉ IP. Mỗi tên miền được xử lý bởi một máy chủ ảo , do đó, máy chủ ảo dựa trên tên .

Đây là một cấu hình mẫu cho hai miền:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Bạn sẽ tìm thấy tài liệu chính thức về hỗ trợ máy chủ ảo dựa trên tên ở đây .

Tuy nhiên, xin lưu ý rằng điều này sẽ chỉ hoạt động với các kết nối HTTP đơn giản, không phải với HTTPS (HTTP qua SSL): các máy chủ ảo dựa trên tên dựa vào việc biết tên nào đang được yêu cầu, nhưng thông tin này không thể được biết bởi Apache cho đến khi SSL được mã hóa kết nối được thiết lập.

Nếu bạn cũng cần thiết lập hoạt động với HTTPS, bạn cần dựa vào tiện ích mở rộng cho giao thức SSL có tên là Chỉ định tên máy chủ (SNI) ( RFC4366 ). Về cơ bản, các máy khách hỗ trợ SNI (ví dụ: trình duyệt web) thêm thông tin văn bản thuần túy khi thiết lập kết nối SSL được mã hóa, cho phép máy chủ biết tên được yêu cầu trước khi kết nối SSL sẵn sàng.

Tất cả các trình duyệt chưa hỗ trợ SNI. Tại thời điểm viết và theo Wikipedia, những người này làm:

  • Internet Explorer 7 trở lên, trên Windows Vista trở lên (không hoạt động trên XP, thậm chí IE 8)
  • Mozilla Firefox 2.0 trở lên
  • Opera 8.0 trở lên (phải bật giao thức TLS 1.1)
  • Opera Mobile ít nhất là phiên bản 10.1 beta trên Android
  • Google Chrome (Vista trở lên, XP trên Chrome 6 trở lên, OS X 10.5.7 trở lên trên Chrome 5.0.342.1 trở lên)
  • Safari 2.1 trở lên (Mac OS X 10.5.6 trở lên và Windows Vista trở lên)
  • Konqueror / KDE 4.7 trở lên
  • MobileSafari trong Apple iOS 4.0 trở lên
  • Trình duyệt mặc định của Android trên Honeycomb (v3.x) hoặc mới hơn
  • Điện thoại Windows 7
  • MicroB trên Maemo

Lưu trữ một số máy chủ ảo dựa trên tên HTTPS có thể truy cập được yêu cầu bạn kích hoạt mod_ssl và thêm một cấu hình tương tự như trong ví dụ trên:

Listen 443      
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/    
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Hãy nhớ rằng việc sử dụng SSL yêu cầu bạn phải mua chứng chỉ SSL cho tên miền của mình - hoặc để tạo một số chứng chỉ được ký tự động và định cấu hình Apache để sử dụng chúng cho các kết nối SSL.


bạn có thể cho biết tên và đường dẫn của tập tin cấu hình apache2 không?
João Pimentel Ferreira

đừng quên khởi động lại apache sau khi thay đổisudo service apache2 restart
João Pimentel Ferreira
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.