第六章 web网站服务二)
HTTP介绍
HTTP的全名为Hyper Text Transfer Protocol(超文本传输协议)
在linux下面实现web服务,通常使用Apache来实现,Apache一直是Internet上面最流行的web服务器
关于HTTP这个服务的属性
HTTP的相关软件包
Httpd
HTTP的守护进程
/usr/sbin/httpd
HTTP的脚本
/etc/init.d/httpd
HTTP的端口
80(http) 443(https)
HTTP的配置文件
/etc/http/* /var/www/*
本服务器IP:192.168.200.102
一:搭建dns服务器并测试
[root@crushlinux2 ~]# yum -y install bind bind-chroot caching-nameserver
[root@crushlinux2 ~]# cd /var/named/chroot/etc
[root@crushlinux2 etc]# cp -p named.caching-nameserver.conf named.conf
[root@crushlinux2 etc]# vim named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { 192.168.200.0/24; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { 192.168.200.0/24; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
[root@crushlinux2 etc]# vim named.rfc1912.zones
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
zone "." IN {
type hint;
file "named.ca";
};
zone "baidu.com" IN {
type master;
file "baidu.zone";
allow-update { none; };
};
zone "200.168.192.in-addr.arpa" IN {
type master;
file "named.baidu";
allow-update { none; };
};
[root@crushlinux2 etc]# cd /var/named/chroot/var/named/
[root@crushlinux2 named]# cp -p localhost.zone baidu.zone
[root@crushlinux2 named]# cp -p named.local named.baidu
[root@crushlinux2 named]# vim baidu.zone
IN AAAA ::1
$TTL 86400
@ IN SOA www1.baidu.com root.baidu.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS www1.baidu.com
www1 IN A 192.168.200.102
www2 IN A 192.168.200.102
www3 IN A 192.168.200.102
[root@crushlinux2 named]# vim named.baidu
$TTL 86400
@ IN SOA www1.baidu.com. root.baidu.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS www1.baidu.com.
102 IN PTR www1.baidu.com.
102 IN PTR www2.baidu.com.
102 IN PTR www3.baidu.com.
[root@crushlinux2 named]# service named restart
[root@crushlinux2 named]# vim /etc/resolv.conf
search com
nameserver 192.168.200.102
[root@crushlinux2 named]# nslookup www1.baidu.com
Server: 192.168.200.102
Address: 192.168.200.102#53
Name: www1.baidu.com
Address: 192.168.200.102
[root@crushlinux2 named]# nslookup www2.baidu.com
Server: 192.168.200.102
Address: 192.168.200.102#53
Name: www2.baidu.com
Address: 192.168.200.102
[root@crushlinux2 named]# nslookup www3.baidu.com
Server: 192.168.200.102
Address: 192.168.200.102#53
Name: www3.baidu.com
Address: 192.168.200.102
[root@crushlinux2 named]# nslookup 192.168.200.102
Server: 192.168.200.102
Address: 192.168.200.102#53
102.200.168.192.in-addr.arpa name = www1.baidu.com.
102.200.168.192.in-addr.arpa name = www2.baidu.com.
102.200.168.192.in-addr.arpa name = www3.baidu.com.
虚拟主机可以实现在一台服务器上面运行多个站点,而且之间互不影响。可以大大的节约成本。虚拟主机技术可以通过三种方式来实现:
基于域名,基于IP,基于端口的虚拟主机。
二:安装apache软件包并配置虚拟主机
[root@crushlinux2 ~]# yum -y install httpd
1.基于域名的虚拟主机:
[root@crushlinux2 ~]# vim /etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.200.102:80
<VirtualHost 192.168.200.102:80>
DocumentRoot /var/www/virt1
ServerName www1.baidu.com
ServerAlias www3.baidu.com
</VirtualHost>
<VirtualHost 192.168.200.102:80>
DocumentRoot /var/www/virt2
ServerName www2.baidu.com
</VirtualHost>
建立基于域名的虚拟站点中根目录:
[root@crushlinux2 ~]# cd /var/www/
[root@crushlinux2 www]# mkdir virt1
[root@crushlinux2 www]# mkdir virt2
分别建立了一个测试页面:
[root@crushlinux2 www]# echo "Hello I am www1" >>./virt1/index.html
[root@crushlinux2 www]# echo "Hello I am www2" >>./virt2/index.html
[root@crushlinux2 www]# service httpd restart
测试:
[root@crushlinux2 www]# elinks --dump http://www1.baidu.com
Hello I am www1
[root@crushlinux2 www]# elinks --dump http://www2.baidu.com
Hello I am www2
[root@crushlinux2 www]# elinks --dump http://www3.baidu.com
Hello I am www1
2.基于IP的虚拟主机:
为本网卡配置多个IP
[root@crushlinux2 www]# ifconfig eth0 192.168.200.102
[root@crushlinux2 www]# ifconfig eth0:1 192.168.200.103
[root@crushlinux2 ~]# vim /etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.200.102:80
<VirtualHost 192.168.200.102:80>
DocumentRoot /var/www/virt1
ServerName www.baidu.com
</VirtualHost>
<VirtualHost 192.168.200.103:80>
DocumentRoot /var/www/virt2
ServerName www.baidu.com
</VirtualHost>
[root@crushlinux2 www]# service httpd restart
测试:
[root@crushlinux2 www]# elinks --dump http://192.168.200.102
Hello I am www1
[root@crushlinux2 www]# elinks --dump http://192.168.200.103
Hello I am www2
3.基于端口的虚拟主机:
允许apache监听多个端口
134 Listen 192.168.200.102:8001
135 Listen 192.168.200.102:8002
NameVirtualHost 192.168.200.102:8001
<VirtualHost 192.168.200.102:8001>
DocumentRoot /var/www/virt1
ServerName www1.baidu.com
</VirtualHost>
NameVirtualHost 192.168.200.102:8002
<VirtualHost 192.168.200.102:8002>
DocumentRoot /var/www/virt2
ServerName www2.baidu.com
</VirtualHost>
[root@crushlinux2 www]# service httpd restart
测试:
[root@crushlinux2 www]# elinks --dump http://192.168.200.102:8001
Hello I am www1
[root@crushlinux2 www]# elinks --dump http://192.168.200.102:8002
Hello I am www2
三:httpd服务的访问控制
1.限制网段或IP
[root@crushlinux2 ~]# vim /etc/httpd/conf/httpd.conf
NameVirtualHost 192.16

