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.www58058.com/49701

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

相關推薦

  • 什么是Ansible?

    自動化工具——ansible   ansibleArchitecture ansibleProject 1. 什么是ansible ansible是個什么東西呢?官方的title是“Ansible is Simple IT Automation”——簡單的自動化IT工具。這個工具的目標有這么幾項:讓我們自動化部署APP;自動化管理配置項;自動化的持…

    2017-09-24
  • 第二周 博客作業

    1、linux上的文件管理類命令有哪些,其常用的使用方法及其相關示例。 文件管理命令:rm  mv cp       cp 復制命令       cp   源文件   目標文件           工作機制:如…

    Linux干貨 2016-11-03
  • 破壞grub實驗之一

    1、刪除grub stage1階段 [root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out 446 bytes …

    Linux干貨 2016-09-19
  • grub詳解

    #GRUB詳解 grub基礎概念 前面的開機過程我們知道:按照BIOS定義的硬件設備啟動順序,第一啟動設備中的MBR去讀取boot loader。boot loader功能很強大,要重新自檢硬件設備,開始有一個菜單供用戶選擇系統或者內核版本,還要加載內核將內核解壓到RAM中并執行,最后將控制權移交給內核。屈屈446個字節怎么讓它完成那么多功能。所以Linux…

    Linux干貨 2016-11-25
  • cache: 緩存相關

    cache: 緩存相關 —————————————————— 以下所陳述的緩存概念多是相對web服務而言 緩存所起的作用就是加速,減輕后端服務器壓力。一般而言,我們請求的web服務資源往往不是由后端 服務器所響應的(對于頗具規模的站點來說),而是由前端的緩存服務器所緩存的內容直接響應,所以, 我們得到的資源可能不實最新的,因為緩存的數據于后端服務器不一定時同…

    Linux干貨 2016-11-08
  • Linux文件權限之facl

    1、什么是facl         facl(file access control list)文件訪問控制列表,主要目的是在原有的u,g,o之外,另一層讓普通用戶能控制賦權給另外的用戶或組的機制;       &nbs…

    Linux干貨 2016-09-19
欧美性久久久久