GIT – Virtual Host là tính năng của Apache giúp ta duy trì nhiều hơn một web server trên một . Nhiều tên cùng chia sẻ một địa chỉ IP gọi là named-based virtual hosting, và sử dụng những địa chỉ IP khác nhau cho từng domain gọi là IP-based virtual hosting.

Mục tiêu:

+Cấu hình Ip-based Virtual host

+Cấu hình Named-based Virtual host

Chuẩn bị: (tự thực hiện)

+ Cấu hình phân giải cho tên miền. Xem lại bài cũ

+ Cấu hình web bình thường trước. Xem lại bài cũ

IP-based Virtual Host

VirtualHost dựa trên IP yêu cầu những server phải có một  địa chỉ IP khác nhau cho mỗi virtualhost dựa trên IP. Như vậy, một máy tính phải có nhiều interface hay sử dụng cơ chế virtual interface mà những hệ  điều hành sau này hỗ trợ. Ví dụ trong bài lab này tôi có 1 card mạng eth0 với ip là 192.168.40.135, tôi có thể thêm cho nó 1 virtual ip khác.

Trong bài lab này, bạn hãy cài đặt trước web server, cho tên miền dctuit.com. Kết quả mà bạn cần phải làm là thực hiện được điều này:

image

Hình 1: Trang web có ip là 192.168.40.135

Điều này có nghĩa là máy server có ip là 192.168.40.135 với trang web mặc định được tạo ra. Bây giờ mục tiêu của bạn là tạo thêm 2 ip ảo nữa, cho hay website khác.

Bước 1: Bạn tạo hai ip ảo

[@dctuit ~]# ifconfig eth0:0 192.168.40.136 netmask 255.255.255.0 up
[root@dctuit ~]# ifconfig eth0:1 192.168.40.137 netmask 255.255.255.0 up

Kiểm tra lại ip ảo đã đặt

[root@dctuit ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B3:DE:1C
inet addr:192.168.40.135  Bcast:192.168.40.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb3:de1c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2317 errors:0 dropped:0 overruns:0 frame:0
TX packets:1196 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:269010 (262.7 KiB)  TX bytes:185518 (181.1 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:B3:DE:1C
inet addr:192.168.40.136  Bcast:192.168.40.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:B3:DE:1C
inet addr:192.168.40.137  Bcast:192.168.40.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Bước 2: tạo thêm hai thư mục trong /var/www/html

[root@dctuit ~]# mkdir /var/www/html/136

[root@dctuit ~]# mkdir /var/www/html/137

Tạo hai tập tin index.html cho hai thư mục tương ứng này.

Bước 3: phần quan trọng nhé, mở file cầu hình web server lên nào.

Xuống cuối file, bạn sẽ thấy một đoạn cấu hình virtual host, copy đoạn đó ra, và sửa lại như sau:

<VirtualHost 192.168.40.136:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/136
ServerName www1.dctuit.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.40.137:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/137
ServerName www2.dctuit.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

Sau đó kiểm tra kết quả:

image

Hình 2: Trang web có ip là 192.168.40.136

image

Hình 3: Trang web có ip là 192.168.40.137

Chắc các bạn cũng thấy tôi có cấu hình hai dòng ServerName www1.dctuit.com. Điều đó có nghĩa là tôi đang định cấu hình một địa chỉ www1.dctuit.com cho website có ip là 192.168.40.136 và www2.dctuit.com cho website có ip 192.168.40.137

Đầu tiên bạn phải cấu hình dns server cho tên miền chính của mình www.dctuit.com tương ứng với ip 192.168.40.135.

Tạo thêm một zone nữa cho file cấu hình record:

$TTL    86400
@               IN SOA  server1.dctuit.com. root (
42              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum
IN NS           server1.dctuit.com.
1D    IN A              192.168.40.135
server1 1D      IN A            192.168.40.135
server2 1D      IN A            192.168.40.136
server3 1D      IN A            192.168.40.137
www             1D      IN CNAME        server1
www1            1D      IN CNAME        server2
www2            1D      IN CNAME        server3
mail            1D      IN CNAME        server1
ftp             1D      IN CNAME        server1

Bước 4: Khởi động lại dịch vụ httpd. Bây giờ thì thử truy cập bằng tên thay cho ip:

image

Hình 4: Trang web truy cập bằng tên www1.dctuit.com

image

Hình 5: Trang web truy cập bằng tên www2.dctuit.com

Named-based Virtual Hosts

IP-based Virtual Host dựa vào địa chỉ IP để quyết định Virtual Host nào đúng để truy cập. Vì thế, bạn cần phải có  địa chỉ IP khác nhau cho mỗi Virtual Host. Với Named-based  Virtual Host, server dựa vào HTTP header của client để biết được hostname. Sử dụng kỹ thuật này, một địa chỉ IP có thể có nhiều tên máy tính khác nhau. Named-based Virtual Host rất đơn giản, bạn chỉ cần cấu hình DNS sao cho nó phân giải mỗi tên máy đúng với một địa chỉ IP và sau đó cấu hình Apache để tổ chức những web server cho những miền khác nhau.

Trở lại bài lab này, bạn đã có thể truy cập dctuit.com với trang web như hình sau:

image

Hình 6: Website được truy cập bằng địa chỉ http://dctuit.com

Bây giờ chúng ta sẽ thực hiện một mục tiêu là tạo ra hai trang web nữa, với địa chỉ là webtest1.com và webtest2.com.

Bước 1: Không thể thiếu được, bạn phải tạo hai domain nữa để phân giải cho tên miền webtest1.com và webtest2.com có cùng một ip là 192.168.40.136

Mở file named.conf thêm vào hai zone sau:

zone “webtest1.com” IN {
type master;
file “webtest1.db”;
};
zone “webtest2.com” IN {
type master;
file “webtest2.db”;
};

Tạo hai file cấu hình cho zone đó tương ứng. Phần này các bạn tự thực hiện, sao cho phân giải được tên miền webtest1.com và webtest2.com có cùng ip 192.168.40.135

Bây giờ truy cập vào cả 3 địa chỉ dctuit.com, webtest1.com, webtest2.com  đều có cùng nội dung như trang web trong hình 6.

Bước 2: Tạo hai thư mục chứa web, để chuẩn bị cho website mới của mình. Ở đây tôi đã tạo hai thư mục webtest1 và webtest2 nằm trong thư mục /var/www/html

Bước 3: Mở file cấu hình webserver lên, để tạo virtual host, xuống cuối file bạn thêm đoạn sau:

<VirtualHost 192.168.40.135:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/webtest1
    ServerName webtest1.com
    ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.40.135:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/webtest2
    ServerName webtest2.com
    ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

Bước 4: Khởi động lại dịch vụ httpd, và kiểm tra kết quả với hai địa chi.

image

Hình 7: Website truy cập từ địa chỉ http://webtest1.com

Bài viết này nằm trong dự án  website : www.gocit.vn, forum hổ trợ forum.gocit.vn , xem thêm tại link http://www.gocit.vn/du-an-linux-toan-tap/
Print Friendly

Comments

comments

Bài viết liên quan