wstlwl 发表于 2018-11-23 12:04:26

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]
查看完整版本: WEB网站服务