Http实践

练习:搭建虚拟主机

    (1)基于主机名实现三个虚拟主机

    (2) 每虚拟主机使用独立的访问日志和错误日志

Http实践

    (3) 第三个虚拟主机的/admin要进行用户访问认证

Http实践

Http实践

    (4) 在第二个虚拟主机上提供/status;

Http实践

    (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径;

Http实践

    (6) 尝试使用混合类型的虚拟主机:基于IP,PORT和ServerName

[root@Centos7 httpd]# cat /etc/httpd/conf.d/vhost.conf
###虚拟主机1
<VirtualHost 192.168.1.3:80 >
    ServerName www.centos1.com
    DocumentRoot "/var/www1/html"
    ErrorLog "logs/www1_error_log"
    CustomLog "logs/www1_access_log" combined 
<Directory "/var/www1/html">
    Options None
    AllowOverride None 
    Require all granted 
</Directory>
</VirtualHost>
 
###虚拟主机2
<VirtualHost 10.1.3.25:80 >
    ServerName www.centos2.com
    DocumentRoot "/var/www2/html"
    ErrorLog "logs/www2_error_log"
    CustomLog "logs/www2_access_log" combined 
    <Directory "/var/www2/html">
        Options None
        AllowOverride None 
        Require all granted 
    </Directory>
    <Location "/status">
        SetHandler server-status
        Require all granted 
    </Location>
</VirtualHost>
 
###虚拟主机3
<VirtualHost 10.1.3.25:8080 >
    ServerName www.centos3.com
    DocumentRoot "/var/www3/html"
    ErrorLog "logs/www3_error_log"
    CustomLog "logs/www3_access_log" combined 
    Alias /bbs "/bbs/fstab"
    <Directory "/var/www3/html/admin">
        Options None
        AllowOverride None
        AuthName "Admin Login."
        AuthType Basic
        AuthUserFile "/var/www3/.pass"
        Require user li
    </Directory>
    <Directory "/var/www3/html">
        Options Indexes
        AllowOverride None 
        Require all granted 
    </Directory>
    <Directory "/bbs/fstab">
       Options None
        AllowOverride None 
        Require all granted 
    </Directory>
</VirtualHost>

练习2:使用脚本实现以上功能;

    每虚拟使用单独的配置文件;

    脚本可接受参数,参数虚拟主机名称;

#!/bin/bash
#
#判断是否为变量path是否为quit,如果是,则退出。
while [[ $path != "quit" ]];do
    read -p "Please Input Save Path: " path
    if [[ $path == "quit" ]];then
      break 
    fi
#读取变量参数
    read -p "Please Input ServerName: " SName
    read -p "Please Input IP: " ip 
    read -p "Please Input port: " port 
#截取本机ip用于判断
    localip=$(ip ad sho | awk '/inet\>/{print $2}' | awk -F'/' '!/^127/{print $1}')
#判断及创建  
    if ! [ -d $path ] &&  [ -n $path ];then 
    mkdir -p $path &>/dev/null
        if echo $localip | grep "$ip" &>/dev/null ;then
        if [ $port -lt 1023 ];then
          echo "<VirtualHost "$ip":"$port">" >>$path/index.html
          echo -e "\tServerName $SName" >>$path/index.html
          echo -e "\tDocumentRoot \""$path"\"" >>$path/index.html
          echo "</VirtualHost>" >>$path/index.html
        else 
          echo "Sorry $port max"
        fi
      else
         echo "Sorry $ip false"
      fi
  else 
    echo "Sorry path exist"
  fi
done

原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/49701

(0)
LiiLii
上一篇 2016-09-29 21:31
下一篇 2016-10-01

相关推荐

  • mysql基础篇(一些基本概念的总结)

    一、安装以及初始化     软件包来源         1. vendor, rpm           2. 官网,source code 编译 &…

    Linux干货 2015-12-03
  • 网络基础

    #**计算机网络**##网络的特征– 速度、成本、安全性、可用性、可扩展性、可靠性、拓扑 ##**物理拓扑分类**– 总线型– 所有设备均可接受信号– 星型拓扑– 通过中心点传输,单一故障点– 扩展星型拓扑– 比星型拓扑的复原能力强– 环拓扑– 信号绕…

    Linux干货 2017-11-27
  • bash脚本之for循环和while循环及包管理

    一.概述 上一章剩余内容 压缩工具 cpio 复制从或到文件 cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。 cpio[选项] > 文件名或者设备名 cpio[选项] < 文件名或者设备名 选项 -o 将文件拷贝打包成文件或者将文件输出到设备上 -i解包,将打包文件解压或将…

    Linux干货 2016-08-24
  • linux sort 命令详解

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$&nb…

    Linux干货 2016-08-15
  • FHS文件系统各目录功能

    / 根目录。 包含了几乎所的文件目录。相当于中央系统。进入的最简单方法是:cd /。 /boot 引导程序,内核等存放的目录。 这个目录,包括了在引导过程中所必需的文件,引导程序的相关文件(例如grub,lilo以及相应的配置文件以及Linux操作系统内核相关文件(例如vmlinuz等一般都存放在这里。在最开始的启动阶…

    Linux干货 2016-10-20
  • Linux文件类型及颜色标识整理

    Linux文件类型及颜色标识整理 Linux文件系统中有如下的文件类型: 类型1:普通文件—-à白色 类型2:目录文件—à蓝色 类型3:链接文件—à浅蓝色 类型4:字符设备文件—à黄色 类型5:块设备文件—-à黄色 类型6:管道文件—à青黄色 类型7:套接字文件—à粉红色 为…

    Linux干货 2016-10-19