httpd-2.2和httpd-2.4區別 、請求方法和響應狀態碼、虛擬主機、訪問控制、持久鏈接

第十周
The Apache HTTP Server is a powerful, efficient, and extensible web server.
2018/2/4 16:33

1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式

MPM

w1

編譯過程復習

w2

三種模式轉換

w3

附上編譯過程腳本

編譯腳本

#!/bin/bash
#
# ----------------------------------- pre install scripts -----------------------------------------
wkdir=$PWD
yum -y groupinstall "Development Tools" 
yum -y install zlib-devel
which wget || yum -y install wget
[ -f httpd-2.2.34.tar.gz ] || wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.2.34.tar.gz

# ----------------------------------- complie scripts -----------------------------------------
for i in prefork event worker; do
 [ -d /usr/local/httpd22-$i ] && continue 
 [ -d httpd-2.2.34-$i ] || tar xf httpd-2.2.34.tar.gz 
 mv httpd-2.2.34 httpd-2.2.34-$i
 cd httpd-2.2.34-$i
 ./configure --prefix=/usr/local/httpd22-$i --enable-modules=all --with-mpm=$i
 make -j 8
 make install
 sleep 5
 cd $wkdir
 rm -rf httpd-2.2.34-$i
done

# ----------------------------------- post install scripts -----------------------------------------
[ -L /usr/sbin/httpd.worker ] || ln -sv /usr/local/httpd22-worker/bin/httpd /usr/sbin/httpd.worker
[ -L /usr/sbin/httpd.event ] || ln -sv /usr/local/httpd22-event/bin/httpd /usr/sbin/httpd.event
[ -h /usr/sbin/httpd ] || ln -sv /usr/local/httpd22-prefork/bin/httpd /usr/sbin/httpd
install ${wkdir}/httpd /etc/rc.d/init.d/httpd
cp ${wkdir}/httpd-sys /etc/sysconfig/httpd
chkconfig --list | grep 'httpd' || chkconfig --add httpd

服務腳本

#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: The Apache HTTP Server is an efficient and extensible \
# server implementing the current HTTP standards.

if [ -f /etc/sysconfig/httpd ]; then
 . /etc/sysconfig/httpd
fi
prog=${HTTPD-/usr/sbin/httpd}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
prog=$(basename $prog)

check_prog() {
 [ -f $lockfile ] && RETVAL=0 || RETVAL=1
 return $RETVAL
}
pxr_start() {
 check_prog
 if [ $RETVAL -eq 0 ]; then
 echo "$prog is started."
 else
 #$prog $OPTIONS -DFOREGROUND
 $prog $OPTIONS 
 if [ $? -eq 0 ]; then
 touch $lockfile
 echo "$prog start ok"
 else
 echo "$prog start fail"
 fi
 fi
}
pxr_stop() {
 check_prog
 if [ $RETVAL -eq 0 ]; then
 kill -9 `pgrep $prog` &> /dev/null
 rm -f $lockfile
 [ $? -eq 0 ] && echo "$prog stop finished." || echo "$prog stop fail."
 else
 echo "$prog is stopped."
 fi
}
pxr_restart() {
  pxr_stop
  pxr_start
}
pxr_status() {
 check_prog
 [ $? -eq 0 ] && echo "$prog is running." || echo "$prog is stopping"
}

case "$1" in
 start|stop|restart|status)
 pxr_$1
 ;;
 *)
 echo $"Usage: $prog {start|stop|restart|status}"
 RETVAL=2
 ;;
esac
exit $RETVAL

# 注意:腳本有缺陷,要更換MPM時, 需要先停止服務....

2、簡述request報文請求方法和狀態響應碼

request報文請求方法

w5

狀態響應碼

w4

3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

實現環境

x1

一、httpd虛擬主機

x2

(1) 基于IP的虛擬主機(httpd-2.4)

x3

(2) 基于PORT的虛擬主機(httpd-2.4)

x4

(3) 基于Host:(httpd-2.2/httpd-2.4)

x5

x6

 

二、站點訪問控制

x7

x8

x9

三、基于用戶的訪問控制

x10

x11

四、持久鏈接

x12

x13

x14

注:完成作業路徑:四 -> 二 -> 一 -> 三;參考:http://www.www58058.com/89108

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91448

(0)
逆神陽逆神陽
上一篇 2018-02-01 20:24
下一篇 2018-02-05 08:43

相關推薦

  • 馬哥教育網絡班21期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@centos ~]# cp -r /etc/skel /home/tuser1 [root@centos ~]# ls -aldh&…

    Linux干貨 2016-07-29
  • yum總結之概述篇

    前言 一個linux菜鳥往往因為對與linux安裝軟件的復雜而望而卻步,特別是從windows到linux的用戶肯定表示接受不了。確實linux下裝軟件想做到win下下一步下一步完成目前來說是不可能的。 linux下軟件安裝有3種方法:   一種是源碼安裝,需要用戶自己手動編譯,另一種是RPM包(RedHat Linux Packet M…

    Linux干貨 2016-03-01
  • 馬哥教育網絡班20期+第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;     cp /etc/rc.d/rc.sysinit  /tmp   &n…

    Linux干貨 2016-10-19
  • 馬哥教育網絡班22期+第5周課程練習 忍者亂太郎喻成

    1、顯示當前系統上root、fedora或user1用戶的默認shell;   以root為例 awk -F':' '$1 ~ /root/ {print $7} ' /etc/passwd 2、找出/etc/rc.d/…

    Linux干貨 2016-10-09
  • vim常用小結

    移動光標類命令h :光標左移一個字符l :光標右移一個字符space:光標右移一個字符Backspace:光標左移一個字符k或Ctrl+p:光標上移一行j或Ctrl+n :光標下移一行Enter :光標下移一行w或W :光標右移一個字至字首b或B :光標左移一個字至字首e或E :光標右移一個字至字尾) :光標移至句尾( :光標移至句首}:光標移至段落最后一個…

    Linux干貨 2017-04-11
  • 訪問控制列表ACL

     ACL是Access Control List的縮寫,主要的目的是提供傳統的owner、group、others的read、write、execute權限之外的具體權限設置。ACL可以針對單一用戶、單一文件、單一目錄來進行r、w、x的權限設置,對于需要特殊權限的使用狀況非常有幫助。使用getfacl和setfacl來設置查看acl的權限。ACL權…

    Linux干貨 2016-08-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-02-05 22:27

    贊,總結的比較全面,也有自己的理解,加油~

欧美性久久久久