httpd2.4.23部署Web服務器

HTTP協議

http/0.9:簡單超文本瀏覽,只支持get方式,內部文件檢索系統 

http/1.0 : cache ,MIME機制 method(請求方法),可以傳輸非文本格式的數據。Html 格式的文本文檔有text/html類型標記,普通的ASCII文本文檔由text/plain,類型標記 Jpeg格式的圖片爲image/gif類型,Apple的quick time 電影格式爲video/quicktime類型。Method:請求方式 GET、POST、HEAD、PUT、DELDTE、TARCE、OPTIONS。 

http/1.1:增加了緩存,持續連接的功能(keep-alive) 

http/2.0:借鑑google SPDY協議的特性。

但目前來說http版本以1.1居多,2.0用的依然較少。

image.png

HTTP事物

request請求報文

<method> <request URL> <HTTP version>
<header>
<entity-body>

response迴應報文

<HTTP version> <state code> <reason-phrase>
<header>
<entity-body>

http報文分析

Request Method:GET#請求方式
Status Code:304 Not Modified#狀態碼
##迴應報文##
Connection:Keep-Alive#使用keep-alive長連接
Date:Tue, 13 Dec 2016 14:41:57 GMT#連接時間
ETag:"5-54361251beb00"#相應內容特徵碼
Keep-Alive:timeout=5, max=100#長連接的超時時間,最大連接保持時間
Server:Apache/2.4.6 (CentOS) PHP/5.4.16#服務器的系統和web服務器版本
##請求報文##
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8#客戶端支持的數據類型
Accept-Encoding:gzip, deflate, sdch#支持的壓縮
Accept-Language:zh-CN,zh;q=0.8#支持的語言
Cache-Control:max-age=0#緩存控制
Connection:keep-alive#支持長連接
Host:www.linuxinfo.top#客戶端請求的域名
Upgrade-Insecure-Requests:1#表示支持不安全的http連接,但最好使用https
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0#客戶端使用的瀏覽器信息

使用httpd-2.4.23部署

Apache HTTP Server(簡稱Apache),是Apache軟件基金會的一個開放源代碼的網頁服務器,可以在大多數電腦操作系統中運行,由於其具有的跨平臺性和安全性,被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,Perl/Python解釋器可被編譯到服務器中,可以創建一個每天有數百萬人訪問的Web服務器。

新版本的 httpd-2.4 新增以下特性; 

新增模塊;

mod_proxy_fcgi(可提供 fcgi 代理)

mod_ratelimit(限制用戶帶寬)

mod_request(請求模塊,對請求做過濾) 

mod_remoteip(匹配客戶端的 IP 地址)

 對於基於 IP 的訪問控制做了修改,不再支持 allow,deny,order 機制,而是統一使用 require 進行

 還新增以下幾條新特性; 

1、MPM 支持在運行時裝載;不過要開啓這種特性,在編譯安裝要啓用這三種功能; --enable-mpms-shared=all --with-mpm=event 

2、支持 event 

3、支持異步讀寫

4、在每個模塊及每個目錄上指定日誌級別 

5、增強版的表達式分析器

6、每請求配置:

7、毫秒級別的 keepalive timeout 

8、基於 FQDN 的虛擬主機不再需要 NameVirtualHost 指令 

9、支持使用自定義變量

步驟

首先下載源碼包

apr-1.5.2.tar.gz 
apr-util-1.5.4.tar.gz 
pcre-8.39.tar.gz 
zlib-1.2.8.tar.gz 
httpd-2.4.23.tar.gz 
openssl-1.0.1u.tar.gz

給一個我自己做的腳本。拆分一下就是整個步驟。

#!/bin/bash
echo "解壓軟件包"
cd /root
tar zxf apr-1.5.2.tar.gz 
tar zxf apr-util-1.5.4.tar.gz 
tar zxf pcre-8.39.tar.gz 
tar zxf zlib-1.2.8.tar.gz 
tar zxf httpd-2.4.23.tar.gz 
tar zxf openssl-1.0.1u.tar.gz
echo "安裝apr"
cd /root/apr-1.5.2/
./configure --prefix=/usr/local/apr &> /dev/null
make &> /dev/null
make install &> /dev/null
echo "安裝apr-utils"
cd /root/apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr &> /dev/null
make &> /dev/null
make install &> /dev/null
echo "安裝zlib"
cd /root/zlib-1.2.8/
./configure --prefix=/usr/local/zlib &> /dev/null
make &> /dev/null
make install &> /dev/null
echo "安裝pcre"
cd ../pcre-8.39/
./configure --prefix=/usr/local/pcre &> /dev/null
make &> /dev/null
make install &> /dev/null
echo "安裝opensll-1.0.1u"
cd ../openssl-1.0.1u/
./config -fPIC --prefix=/usr/local/openssl enable-shared &> /dev/null
make &> /dev/null
make install &> /dev/null
mv /usr/bin/openssl /usr/bin/openssl.1.0.1e
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
echo "安裝httpd"
cd /root/httpd-2.4.23/
./configure --prefix=/usr/local/http --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-z=/usr/local/zlib/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate &> /dev/null
make &> /dev/null
make install &> /dev/null
ln -s /usr/local/http/bin/* /usr/local/bin/
sed -i s/#ServerName/Servername/g /usr/local/http/conf/httpd.conf
cp /usr/local/http/bin/apachectl /etc/init.d/httpd
sed -i '1 a # chkconfig: 35 85 15' /etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on
apachectl start
if [ $? -eq 0 ];then
echo "!!!!!!Complete!!!!!!"
fi

注意,openssl如果不安裝上面的版本,可以直接

yum -y install openssl-devel

這樣就省去了下載並源碼安裝openssl的時間了,因爲安裝openssl時間很長。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章