Quản Trị  Máy Chủ Dịch Vụ
 
Sử dụng Virtual Host (tên ảo) trong Apache
20:31 | 10/04/2010

Người dùng sử dụng tên ảo với mục đích chạy được nhiều tên (hostnames) khác nhau trên một máy chủ. Có hai loại tên ảo có thể sử dụng trong Apache: cách dựa vào tên (name-based virtual host) và cách dựa vào IP (IP-based virtual host).

Sử dụng tên ảo bằng cách dựa vào tên có lợi điểm là bạn chỉ cần dùng một địa chỉ IP cho tất cá các tên.

Điều quan trọng là bạn phải khai báo tất cả các tên bạn muốn dùng với Apache trong máy chủ DNS trước. Nếu bạn chỉ khai báo thoải mái các tên khác nhau trong httpd.conf (hay apache.conf) mà trong máy chủ DNS không hề có thông tin của các tên thì người dùng sẽ không thấy được trang web của bạn. Cái điểm yếu của việc sử dụng tên ảo dựa vào tên là bạn không thể xài SSL (https://) cho tất cả các tên vì SSL yêu cầu mỗi tên phải có riêng một IP trong khi sử dụng tên ảo dựa vào tên thì bạn chỉ có một IP duy nhất cho nhiều tên khác nhau.

Ví dụ cụ thể:

vnlinux.org có địa chỉ là 24.153.136.146. Tại sao mình biết? Chỉ việc gõ host vnlinux.org thì bạn sẽ thấy trả lời giống bên dưới:

rhs@gw rhs $ host vnlinux.org

vnlinux.org has address 24.153.136.146

Mỗi lần ghé thăm trang web vnlinux.org, thì người dùng có thể gõ http://www.vnlinux.org hay http://vnlinux.org sẽ đều thấy cả hai địa chỉ khác nhau nhưng nội dung thì như nhau. Tại sao vậy? Nếu bạn gõ host www.vnlinux.org thì bạn sẽ thấy trả lời là

rhs@gw rhs $ host www.vnlinux.org
www.vnlinux.org is an alias for vnlinux.org.

Lý do là vì mình đã khai báo trong DNS record, www.vnlinux.org sẽ là alias (hay còn gọi là CNAME khi thiết lập máy chủ DNS) của vnlinux.org Bên dưới là những hàng mình lấy ra từ tập tin db.vnlinux.org của máy chủ DNS

vnlinux.org. IN A 24.153.136.146

www.vnlinux.org. IN CNAME vnlinux.org.

Trong httpd.conf (hay apache.conf), mình khai báo ServerName www.vnlinux.org

Ví dụ trên chỉ đơn thuần giải thích cách dùng CNAME cho trang web .

Kế tiếp mình sẽ giải thích cách cấu hình dns và apache cho việc sử dụng tên ảo dựa vào tên (name-based virtual host).

Ví dụ trên bạn cũng đã thấy www.vnlinux.org có IP là 24.153.136.146 Mình cũng đã có những trang web sau cùng có chung IP với vnlinux.org bằng cách sử dụng tên ảo dựa vào tên.

howto.vnlinux.org

i18n.vnlinux.org

dịchthuật.vnlinux.org *

Bên dưới là kết quả của lệnh host cho những tên phía trên.

rhs@gw rhs $ host howto.vnlinux.org

howto.vnlinux.org has address 24.153.136.146

rhs@gw rhs $ host i18n.vnlinux.org

i18n.vnlinux.org has address 24.153.136.146

rhs@gw rhs $ host xn--dchthut-5p4c4j.vnlinux.org

xn--dchthut-5p4c4j.vnlinux.org has address 24.153.136.146

* xn--dchthut-5p4c4j là punycode format cho dịchthuật

Xem thêm về punycode bằng cách nhấn đây http://search.yahoo.com/search?ei=UTF-8&fr=sfp&p=punycode

Thông tin khai báo cho DNS (Nhớ khởi động lại máy chủ DNS):

howto.vnlinux.org. IN A 24.153.136.146

i18n.vnlinux.org. IN A 24.153.136.146

xn--dchthut-5p4c4j.vnlinux.org. IN A 24.153.136.146

Thông tin khai báo trong httpd.conf (hay apache.conf hay VHost.conf...) 

NameVirtualHost 24.153.136.146:80

(VirtualHost 24.153.136.146:80)

ServerAdmin me@here.com

DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs

ServerName www.vnlinux.org

ErrorLog logs/VietLUG_error_log

CustomLog logs/VietLUG_access_log common

DirectoryIndex index.html

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}

RewriteRule .* - [F]

(/VirtualHost)

Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.

(VirtualHost 24.153.136.146:80)

ServerAdmin me@here.com

DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs

ServerName xn--dchthut-5p4c4j.vnlinux.org

ErrorLog logs/dichthuat_error_log

CustomLog logs/dichthuat_access_log common

DirectoryIndex index.html

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}

RewriteRule .* - [F]

(/VirtualHost)

Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.

Làm y chang như trên cho hai tên howto và i18n. Sau khi khai báo các hàng trên, bạn phải khởi động lại apache.

Lưu ý: những dòng trên là những khai báo căn bản trong httpd.conf. Tùy vào nhu cầu phục vụ trang web mà bạn rất có thể cần thêm bớt các giá trị tùy thích

Nếu bạn đã khai báo trong DNS và apache đầy đủ mà vẫn không thấy các tên ảo hoạt động, rất có thể bạn phải chờ trong vòng một ngày (hoặc sớm hơn, hoặc lâu hơn) để DNS records chứa những thông tin bạn vừa thành lập được cập nhật.

Muốn kiểm tra ngay lập tức xem các tên ảo đã được thiết lập đúng chưa bạn có thể gõ httpd -S (hay apache -S)

Bài viết trên đã hướng dẫn cách thiết lập dns và apache cần thiết cho việc sử dụng tên ảo dựa vào tên (name-based virtual host). Bạn có thể đọc thêm tài liệu của Apache tại đây với hướng dẫn cách sử dụng tên ảo dựa trên IP (IP-based virtual host) và các ví dụ phức tạp hơn

Nguồn : Internet
 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Hướng dẫn tạo các báo cáo Advanced Survey trên Server HP Gen8
- Di chuyển hệ điều hành từ đĩa cứng cũ sang HDD hoặc SSD mới một cách nhanh chóng
- Quản trị máy chủ : Hướng dẫn sử dụng Fujitsu Eternus DX90 S2 cơ bản
- Reset Root password Vmware ESXi 4.1 Server
- Chống DDoS trên IIS 7
- Xây dựng hệ thống giám sát trên Centos 5.6 Phần 2: Zabbix
- Tìm hiểu về bản chất của tính năng Wake – On – Lan
- Xây dựng hệ thống giám sát trên Centos 5.6 Phần 1: Zenoss
- Quản trị máy chủ Openqrm Phần 4: Kết Hợp Xen và OpenQRM trên Centos 5.6
- Quản trị máy chủ Openqrm Phần 3 : Triển khai Windows 2k8 -win7 và các distro linux trên mạng với OpenQRM 4.8
Các tin liên quan :
- Cấu hình DNS Server và Client
Bài nhiều người đọc cùng chuyên mục
Quản trị máy chủ Cisco UCS C-Series - Phần 1 : Cấu hình Raid sử dụng LSI MegaRAID
 
Mdaemon toàn tập (Phần 1) : Những câu hỏi thường gặp trong quá trình cài đặt
 
Mdaemon toàn tập (Phần 2) : Những câu hỏi thường gặp trong quá trình Quản trị, Backup và Restore
 
Tìm hiểu về bản chất của tính năng Wake – On – Lan
 
Các giải pháp ảo hóa Domain Controller – Phần 1
 
Hướng dẫn cài đặt vCenter Server
 
Xây dựng hệ thống giám sát trên Centos 5.6 Phần 2: Zabbix
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty Cổ Phần Kênh Giải Pháp
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.

return false; });