一:簡述
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最爲廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標準。
HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口爲80)的HTTP請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲着(一些)資源,比如HTML文件和圖像。(我們稱)這個應答服務器爲源服務器(origin server)。在用戶代理和源服務器中間可能存在多箇中間層,比如代理,網關,或者隧道(tunnels)。儘管TCP/IP協議是互聯網上最流行的應用,HTTP協議並沒有規定必須使用它和(基於)它支持的層。 事實上,HTTP可以在任何其他互聯網協議上,或者在其他網絡上實現。HTTP只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
通常,由HTTP客戶端發起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比如"HTTP/1.1 200 OK",和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在於(打開)一個網頁必須傳送很多數據,而TCP協議提供傳輸控制,按順序組織數據,和錯誤糾正。
通過HTTP或者HTTPS協議請求的資源由統一資源標示符(Uniform Resource Identifiers)(或者,更準確一些,URLs)來標識。
HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
HTTP是客戶端瀏覽器或其他程序與Web服務器之間的應用層通信協議。在Internet上的Web服務器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用於Web訪問,也可以用於其他因特網/內聯網應用系統之間的通信,從而實現各類應用資源超媒體訪問的集成。
我們在瀏覽器的地址欄裏輸入的網站地址叫做URL (Uniform Resource Locator,統一資源定位符)。就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接時,URL就確定了要瀏覽的地址。瀏覽器通過超文本傳輸協議(HTTP),將Web服務器上站點的網頁代碼提取出來,並翻譯成漂亮的網頁。
二:實驗簡述
LAMP是web服務的最基礎的組合方式,本系列將介紹一下關於LAMP組合的各種部署方式,包括:
基於RPM包的實現:
httpd與php結合的方式爲module,也就是php作爲httpd的模塊方式提供服務
httpd與php結合的方式爲fastcgi,也就是php工作爲獨立的進程,與httpd之間利用fastcgi協議提供服務
基於編譯安裝實現:
httpd與php結合的方式爲module,也就是php作爲httpd的模塊方式提供服務
httpd與php結合的方式爲fastcgi,也就是php工作爲獨立的進程,與httpd之間利用fastcgi協議提供服務
本篇就展示一下利用rpm包,php與httpd結合的方式爲module方式
包含了LAMP的安裝
httpd虛擬主機的配置(基於IP、基於端口、基於主機名)
httpd基於basic認證
httpd基於IP的訪問控制
httpd的status頁面的配置
httpd的路徑別名的配置
環境說明
使用centos7系統
利用yum安裝相關軟件包
搭建好yum源倉庫和配置好DNS
爲了避免在試驗過程中出現其它問題,先把防火牆(iptables)清空,SElinux設置爲disabled
第一部分: RPM包安裝LAMP相關軟件,進行簡單配置
1、安裝http、php、mariadb-server、php-mysql
httpd作爲web服務器
mariadb-server作爲數據庫服務器
php當httpd與module結合時,使用的軟件包(如果利用fastcgi結合,則需要安裝php-fpm)
php-mysql php連接時mysql數據庫時的擴展模塊
2、修改httpd的配置文件和mariadb配置文件
修改httpd的配置文件,讓其能夠正常啓動
[root@CentOS 7 ~]#vim /etc/httpd/conf/httpd.conf
修改mariadb的配置文件,讓其能夠正常啓動
[root@CentOS 7 ~]#vim /etc/my.cnf
3,對mysql進行簡單配置,增強其安全性,創建並授權賬號,供php連接使用
在第一次啓動數據庫時,建議使用 mysql_secure_installnation(安全配置嚮導)進行安全相關的初始化設定,增強mysql的安全性
創建某用戶賬號,用於讓php進行連接數據庫使用
提供測試頁,進行測試
二,httpd相關配置顯示
1,配置基於IP的虛擬機主機
先爲本機添加IP
編輯配置文件
vim /etc/httpd/conf/httpd.conf (DocumentRoot:網站根目錄)
爲不同的虛擬主機提供不同的測試頁
mkdir /testdir/{www1,www2}
檢查配置文件的語法是否有誤,無誤就重啓服務,然後進行測試
配置基於PORT的虛擬主機
修改配置文件
vim /etc/httpd/conf/httpd.conf
添加一項:
Listen 80
Listen 8080
vim /etc/httpd/conf.d/vhost.conf
在主配置文件裏修改了端口、網頁根路徑時,都要重啓服務
httpd -t
systemctl restart httpd.service
配置基於主機名稱的虛擬主機
修改httpd配置文件
檢查配置文件語法錯誤,重啓httpd服務
修改測試主機的host文件,讓其對www.a.com和www.b.com都能解析到10.1.50.66主機上,然後進行測試
WindowsDNS文件路徑:C盤/windows/system32/driver/etc/hosts
4,配置基於basic認證的用戶認證
修改httpd配置文件
創建認證文件
提供對應的測試頁面,重載配置文件,進行測試
5、配置基於IP的訪問控制機制
修改httpd的配置文件
vim /etc/httpd/conf.d/vhost.conf
檢查配置文件語法,然後重載配置文件,進行測試
6、基於httpd狀態頁面的配置
修改heepd配置文件
vim /etc/httpd/conf.d/vhost.conf
修改完配置參數,檢查語法是否有語法錯誤,重載配置文件
7,配置路徑別名
修改httpd配置文件
vim /etc/httpd/conf.d/vhost.conf
在/aaa/bbb下提供測試頁面,檢查httpd配置語法,重載文件