WEB网站服务
第六章web网站服务(二)HTTP介绍
HTTP的全名为HyperTextTransferProtocol(超文本传输协议)
在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服务器并测试
#yum-yinstallbindbind-chrootcaching-nameserver
#cd/var/named/chroot/etc
#cp-pnamed.caching-nameserver.confnamed.conf
#vimnamed.conf
options{
listen-onport53{any;};
listen-on-v6port53{::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";
//Thoseoptionsshouldbeusedcarefullybecausetheydisableport
//randomization
//query-sourceport53;
//query-source-v6port53;
allow-query{192.168.200.0/24;};
allow-query-cache{any;};
};
logging{
channeldefault_debug{
file"data/named.run";
severitydynamic;
};
};
viewlocalhost_resolver{
match-clients{192.168.200.0/24;};
match-destinations{any;};
recursionyes;
include"/etc/named.rfc1912.zones";
};
#vimnamed.rfc1912.zones
zone"."IN{
typehint;
file"named.ca";
};
zone"baidu.com"IN{
typemaster;
file"baidu.zone";
allow-update{none;};
};
zone"200.168.192.in-addr.arpa"IN{
typemaster;
file"named.baidu";
allow-update{none;};
};
#cd/var/named/chroot/var/named/
#cp-plocalhost.zonebaidu.zone
#cp-pnamed.localnamed.baidu
#vimbaidu.zone
INAAAA::1
$TTL86400
@INSOAwww1.baidu.comroot.baidu.com(
42;serial(d.adams)
3H;refresh
15M;retry
1W;expiry
1D);minimum
@INNSwww1.baidu.com
www1INA192.168.200.102
www2INA192.168.200.102
www3INA192.168.200.102
#vimnamed.baidu
$TTL86400
@INSOAwww1.baidu.com.root.baidu.com.(
1997022700;Serial
28800;Refresh
14400;Retry
3600000;Expire
86400);Minimum
@INNSwww1.baidu.com.
102INPTRwww1.baidu.com.
102INPTRwww2.baidu.com.
102INPTRwww3.baidu.com.
#servicenamedrestart
#vim/etc/resolv.conf
searchcom
nameserver192.168.200.102
#nslookupwww1.baidu.com
Server:192.168.200.102
Address:192.168.200.102#53
Name:www1.baidu.com
Address:192.168.200.102
#nslookupwww2.baidu.com
Server:192.168.200.102
Address:192.168.200.102#53
Name:www2.baidu.com
Address:192.168.200.102
#nslookupwww3.baidu.com
Server:192.168.200.102
Address:192.168.200.102#53
Name:www3.baidu.com
Address:192.168.200.102
#nslookup192.168.200.102
Server:192.168.200.102
Address:192.168.200.102#53
102.200.168.192.in-addr.arpaname=www1.baidu.com.
102.200.168.192.in-addr.arpaname=www2.baidu.com.
102.200.168.192.in-addr.arpaname=www3.baidu.com.
虚拟主机可以实现在一台服务器上面运行多个站点,而且之间互不影响。可以大大的节约成本。虚拟主机技术可以通过三种方式来实现:
基于域名,基于IP,基于端口的虚拟主机。
二:安装apache软件包并配置虚拟主机
#yum-yinstallhttpd
1.基于域名的虚拟主机:
#vim/etc/httpd/conf/httpd.conf
NameVirtualHost192.168.200.102:80
DocumentRoot/var/www/virt1
ServerNamewww1.baidu.com
ServerAliaswww3.baidu.com
DocumentRoot/var/www/virt2
ServerNamewww2.baidu.com
建立基于域名的虚拟站点中根目录:
#cd/var/www/
#mkdirvirt1
#mkdirvirt2
分别建立了一个测试页面:
#echo"HelloIamwww1">>./virt1/index.html
#echo"HelloIamwww2">>./virt2/index.html
#servicehttpdrestart
测试:
#elinks--dumphttp://www1.baidu.com
HelloIamwww1
#elinks--dumphttp://www2.baidu.com
HelloIamwww2
#elinks--dumphttp://www3.baidu.com
HelloIamwww1
2.基于IP的虚拟主机:
为本网卡配置多个IP
#ifconfigeth0192.168.200.102
#ifconfigeth0:1192.168.200.103
#vim/etc/httpd/conf/httpd.conf
NameVirtualHost192.168.200.102:80
DocumentRoot/var/www/virt1
ServerNamewww.baidu.com
DocumentRoot/var/www/virt2
ServerNamewww.baidu.com
#servicehttpdrestart
测试:
#elinks--dumphttp://192.168.200.102
HelloIamwww1
#elinks--dumphttp://192.168.200.103
HelloIamwww2
3.基于端口的虚拟主机:
允许apache监听多个端口
134Listen192.168.200.102:8001
135Listen192.168.200.102:8002
NameVirtualHost192.168.200.102:8001
DocumentRoot/var/www/virt1
ServerNamewww1.baidu.com
NameVirtualHost192.168.200.102:8002
DocumentRoot/var/www/virt2
ServerNamewww2.baidu.com
#servicehttpdrestart
测试:
#elinks--dumphttp://192.168.200.102:8001
HelloIamwww1
#elinks--dumphttp://192.168.200.102:8002
HelloIamwww2
三:httpd服务的访问控制
1.限制网段或IP
#vim/etc/httpd/conf/httpd.conf
NameVirtualHost192.168.200.102:8001
DocumentRoot/var/www/virt1
ServerNamewww1.baidu.com
options-Indexes-Followsymlinks
orderallow,deny
allowfromall
denyfrom192.168.200.102
NameVirtualHost192.168.200.102:8002
DocumentRoot/var/www/virt2
ServerNamewww2.baidu.com
options-Indexes-Followsymlinks
orderdeny,allow
denyfromall
allowfrom192.168.200.102
#servicehttpdrestart
#elinks--dumphttp://192.168.200.102:8001
#elinks--dumphttp://192.168.200.102:8002
2.限制用户
现在我们创建了两个用户,bob和jack。这两个用户本地可以不需要存在,只是用来登陆http服务的。
第一次创建用户的时候,需要加上-c的参数,代表创建身份认证的数据库。
但是第二次创建用户的时候不要使用-c的参数,否则会覆盖前面的用户的。
#htpasswd-cm/etc/httpd/.htpasswdbob
Newpassword:
Re-typenewpassword:
Addingpasswordforuserbob
#htpasswd-m/etc/httpd/.htpasswdjack
Newpassword:
Re-typenewpassword:
Addingpasswordforuserjack
#cat/etc/httpd/.htpasswd
bob:$apr1$GZGVy...$qHSci8W7z5nrASwE3z1ie0
jack:$apr1$nO7oG/..$hscIaM692G043iZmr5CR51
限制方法一:
#vim/etc/httpd/conf/httpd.conf
NameVirtualHost192.168.200.102:8001
DocumentRoot/var/www/virt1
ServerNamewww1.baidu.com
AuthName"Crushlinux"
AuthTypeBasic
AuthUserFile/etc/httpd/.htpasswd
requirevalid-user
#servicehttpdrestart
浏览器测试:http://192.168.200.102:8001
限制方法二:
#vi/var/www/virt1/.htaccess
AuthName“berg”
AuthTypebasic
AuthUserFile/etc/httpd/.htpasswd
Requireuserbobjack
Requirevaid-user
#vim/etc/httpd/conf/httpd.conf
NameVirtualHost192.168.200.102:8001
DocumentRoot/var/www/virt1
ServerNamewww1.baidu.com
AllowoverrideAuthconfig
#servicehttpdrestart
浏览器测试:http://192.168.200.102:8001
-----------------------------------------------------------------------------------
关于http服务语法参数的解释:
NameVirtualHost192.168.0.254:80
通告虚拟主机在那个服务器上面以及那个端口,
第一个虚拟主机的站点,
DocumentRoot/var/www/virt1
虚拟主机站点的根目录,
ServerNamestation1.example.com
定义虚拟主机站点的域名,
ServerAliasserver1.example.com
定义一个虚拟主机域名的别名,
定义虚拟主机站点的访问控制,
options-Indexes-Followsymlinks
去掉Indexes和Followsymlinks的功能,
orderallow,deny
allowfromall
denyfrom192.168.0.10
允许所有,拒绝特定的主机。(这个是有顺序的)
orderdeny,allow
denyfromall
allowfrom192.168.0.10
拒绝所有,允许特定的主机。(这个是有顺序的)
这个是语法,与对应,表示结束。
这个是语法,与对应,表示结束。
关于http服务的身份验证
一.生成身份认证的数据库
#Htpasswd-cm/etc/httpd/.htpasswdbob
-c创建-mmd5的加密
#Htpasswd-m/etc/httpd/.htpasswdalice
AuthName“website”
认证时候的名字
AuthTypebasic
认证的类型为basic
AuthUserFile/etc/httpd/.htpasswd
调用刚才定义的认证数据库文件
Requireuserbobalice
允许bob和Alice两个用户可以访问http服务,并且需要认证。
Requirevalid-user
所有在认证数据库里面的用户均访问http服务
页:
[1]