httpd的安裝與使用

httpd的安裝與使用

httpd的安裝與使用

引言

HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。目前使用的主要有HTTP/1.1、HTTP/2.0版本。

HTTP協議的主要特點可概括如下:

1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

一次完整的http請求處理過程如下:

(1) 建立或處理連接:接收請求或拒絕請求;
(2) 接收請求:接收來自于網絡上的主機請求報文中對某特定資源的一次請求的過程;
(3) 處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息; (4) 訪問資源:獲取請求報文中請求的資源;
(5) 構建響應報文:
(6) 發送響應報文:
(7) 記錄日志:

web服務器,即存放了web資源的主機,負責向請求者提供對方請求的靜態資源,或動態資源運行生成的結果;這些資源通常應該放置于本地文件系統某路徑下;此路徑稱為DocRoot;實現web服務器的軟件有很多,這里僅介紹CentOS6、7自帶的httpd2.2、2.4版本軟件的安裝與使用。

httpd的功能特性有很多,如 CGI:Common Gateway Interface、虛擬主機、反向代理、 負載均衡、路徑別名、豐富的用戶認證機制、支持第三方模塊

下面通過一些實例來展現httpd的安裝與使用
1.安裝
httpd軟件安裝可以通過CentOS發行版中自帶的rpm包,或通過httpd源碼包編譯安裝。這里使用rpm包安裝軟件
yum install httpd httpd-tools
安裝后可能通過rpm -ql httpd命令來查看都安裝哪些文件,CentOS6與7提供的rpm包版本有所不同,安裝后的文件也有一些差別。如下:
CentOS 6:httpd-2.2
程序環境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服務腳本:
/etc/rc.d/init.d/httpd
腳本配置文件:
/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:訪問日志
error_log:錯誤日志
站點文檔:
/var/www/html
模塊文件路徑:
/usr/lib64/httpd/modules
服務控制和啟動:
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd

CentOS 7:httpd-2.4
程序環境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模塊相關的配置文件:
/etc/httpd/conf.modules.d/*.conf
主程序文件:
/usr/sbin/httpd
httpd-2.4支持MPM的動態切換;
日志文件:
/var/log/httpd:
access_log:訪問日志
error_log:錯誤日志
站點文檔:
/var/www/html
模塊文件路徑:
/usr/lib64/httpd/modules
服務控制與啟動:
systemctl enable|disable httpd.service
systemctl {start|stop|restart|status} httpd.service

2.配置文件
主配置文件在/etc/httpd/conf/httpd.conf,但2.2版本與2.4版本的配置文件有所不同,2.2版本通過三段來區別配置文件中配置的不同區域,如 ### Section 1: Global Environment為全局環境配置,定義進程的工作特點或對所有的虛擬主機都通用的工作設定;### Section 2: ‘Main’ server configuration為主服務器配置段;### Section 3: Virtual Hosts為虛擬服務器配置。但2.4版本中不再有這樣的設置
配置格式:
directive value
directive:不區分字符大小寫;
value:為路徑時,是否區分字符大小寫,取決于文件系統;

3.下面通過一些功能實現來說明配置文件如何使用

修改監聽的IP和PORT
格式:Listen [IP-address:]portnumber [protocol]
(1) 省略IP表示為0.0.0.0;
(2) Listen指令可重復出現多次;
(3) 修改監聽socket,重啟服務進程方可生效;
(4) 限制其必須通過ssl通信時,protocol需要定義為https;

測試:
1.在/etc/httpd/conf/httpd.conf中再加入一條Listen 10080,表示除了監聽80端口外,也監聽10080端口或在/etc/httpd/conf.d/中添加一個*.conf文件,在文件中加入Listen 10080
2.systemctl restart httpd //重啟服務
3.ss -tln //查看是否監聽了80和10080兩個端口

持久連接(保持連接,長連接)
Persistent Connection:tcp連接建立后,每個資源獲取完成后不全斷開連接,而是繼續等待其它資源請求的進行;只有當請求超時或超過請求數量時才斷開連接

測試:
1.修改/etc/httpd/conf/httpd.conf文件或在/etc/httpd/conf.d/中添加一個*.conf文件,添加或修改如下內容:
KeepAlive On
KeepAliveTimeout 15
MaxKeepAliveRequests 100
2.通過telnet命令測試長連接是否生效
yum install telnet
telnet 192.168.1.2 80
GET /index.html HTTP/1.1
Host: 192.168.1.2
//通過telnet命令連接到服務器,之后用GET方法獲取資源,在輸入完Host后要按兩次回車就會有信息返回,并且不會斷開。如果配置文件中的KeepAlive是Off,那么獲取到資源后就會斷開

MPM:Multipath processing Modules (多路處理模塊)
httpd-2.2不支持同時編譯多個MPM模塊,所以只能編譯選定要使用的那個;CentOS 6的rpm包為此專門提供了三個應用程序文件,httpd(prefork), httpd.worker, httpd.event,分別用于實現對不同的MPM機制的支持;
MPM有三種模型,如下:
prefork:兩級進程模型,父進程管理子進程,每個子進程響應一個請求;
worker:三級模型,父進程管理子進程,子進程通過線程響應用戶請求;每線程處理一個用戶請求;
event:兩級模型,父進程管理子進程,子進程通過event-driven(事件驅動)機制直接響應n個請求;

CentOS6測試2.2版本:
1.查看靜態編譯的模塊:
httpd -l
httpd.worker -l
httpd.event -l
查看靜態編譯及動態編譯的模塊:
httpd -M
httpd.worker -M
httpd.event -M
//標記為static為靜態,shared為動態模塊,動態模塊需要通過LoadModule加載才能工作。
2.修改變量為想要啟動的模型
vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.{worker,event}
//改為httpd.worker或httpd.event
3.重啟服務
service httpd restart
4.查看MPM模型
ps aux | grep httpd
//現在httpd應為上面修改后的MPM模型

CentOS7httpd2.4版本
1.修改MPM模型
vim /etc/httpd/conf.modules.d/00-mpm.conf
//此文件中有MPM的三個模型,將要啟動的模型去掉注釋,并注釋掉不啟動的模型
2.重啟服務
systemctl restart httpd
3.查看現在的MPM模型
httpd -M | grep mpm

定義中心主機的文檔頁面路徑
配置文件中的ServerName是標識當前主機服務于誰的,與真正的主機名無關。如果這條指定未定義,http啟動時會反解服務器本地地址。如果不能反解會在啟動時提示。
語法格式: ServerName [scheme://]fully-qualified-domain-name[:port]
DoucmentRoot指向的路徑為URL路徑的起始位置,其相當于站點URL的根路徑;默認是/var/www/html/。如URL中訪問的/images/logo.jpg實際路徑在/var/www/html/images/logo.jpg

CentOS7httpd2.4版本測試:
1.創建目錄
mkdir /data/web/www -pv
2.添加一個主頁
vim /data/web/www/index.html
//在index.html中輸入內容,如Main Server
3.修改配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot “/data/web/www”
<Directory "/data/web/www">
Require all granted
</Directory>
//修改根路徑,Require all granted表示允許任何人訪問
4.檢查語法是否有誤
httpd -t
5.重新啟動
systemctl restart httpd

CentOS6httpd2.2版本測試:
1.創建目錄
mkdir /data/html -pv
2.添加一個主頁
vim /data/html/index.html
//在index.html中輸入內容,如Main Server
3.修改配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot “/data/html”
<Directory "/data/html">
Order allow,deny
allow from all
</Directory>
//修改根路徑,allow from all表示允許任何人訪問
4.檢查語法是否有誤
httpd -t
5.重新啟動
systemctl restart httpd

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

(2)
ruopu1989ruopu1989
上一篇 2017-12-07 08:50
下一篇 2017-12-08 11:49

相關推薦

  • 全面解析文件文件系統

    前言: 文件系統作為linux總最基礎的但愿。理解并深入了解文件系統對linux的學習有重要意義。我們從文件系統創建,構成以及工作流程幾個方面全方位的介紹文件系統的相關概念。 簡述: 一塊完整的磁盤經過分區后我們就可以通過格式化,根據我們的需求構建文件系統能使用的文件系統格式。傳統的文檔系統中,一個分區就只能夠被格式化為一個文件系統。所以我們可以說一個文件系…

    Linux干貨 2016-11-14
  • Centos 6.5下DNS服務器主從復制搭建及測試

    一、實驗環境及IP地址規劃     VMware Workstation 10.0, CentOS 6.5 X86系統     主DNS服務器:192.168.1.102     從DNS服務器:192.168.1.110     www服務器:  …

    Linux干貨 2015-04-18
  • 網絡26期 第五周作業

    1. 顯示當前系統上root、fedora或user1用戶的默認shell egrep -o “^(root|fedora|user1)\>.*[^:]+$” /etc/passwd | cut -d: -f1,7 2. 找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(…

    2017-03-13
  • 用戶和組管理類命令

    用戶和組管理類命令 useradd useradd命令用于Linux中創建的新的系統用戶 語法 useradd(選項)(參數) 選項 -c<備注>:加上備注文字。備注文字會保存在passwd的備注欄位中; -d<登入目錄>:指定用戶登入時的啟始目錄; -D:變更預設值; -e<有效期限>:指定帳號的有效期限; -f<…

    Linux干貨 2018-03-18
  • Linux入門知識

    了解計算機的構造和Linux的基本知識,掌握相關的內容

    2017-09-10
  • 文本

    一,復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒 有任何訪問權限; cp -r /etc/skel/ /home/tuser1 chmod -R go= /home/tuser1 二,編輯/etc/group文件,添加組hadoop; vim /etc/group hadoop:x:100…

    Linux干貨 2016-11-20
欧美性久久久久