Tải bản đầy đủ (.pdf) (3 trang)

Sử dụng virtual host (tên ảo) trong Apache

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (166.04 KB, 3 trang )

Sử dụng virtual host (tên ảo) trong Apache
Ngu
ồn : quantrimang.com 
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õ
hay 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
/>
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
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
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
 

×