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

相關推薦

  • 讓自定義腳本成為服務腳本

    1.腳本注釋格式:此格式能讓chkconfig命令識別 #!/bin/bash#chkconfig:runlevel [S]##  [K]##    定義默認runlevel) (S開頭,定義啟動優先級) (K開頭,定義關閉優先級) #description:腳本說明:太長的話需要\換行 2.case語句實現start,stop…

    Linux干貨 2017-05-15
  • Linux 第八天: Linux文本編輯器vim

    Linux 第八天: (08月09日) Linux文本編輯器vim       sed 行編輯器 stream EDitor sed -n 不輸出模式空間內容的自動打印sed -e 多點編輯sed -f /PATH/TO/SCRIPTFILEsed -i 原處編輯   script單地址 # 指定的行/pattern/…

    Linux干貨 2016-08-11
  • 處理交換文件和分區

    處理交換文件和分區 交換分區是系統RAM的補充 ?  基本設置包括:  1 創建交換分區或者文件  2 使用mkswap寫入特殊簽名  3 在/etc/fstab文件中添加適當的條目  4 使用swapon -a 激活交換空間 掛載交換分區 ? 啟用:swapon swapon [OPTION]……

    Linux干貨 2016-09-01
  • 基于Corosync + Pacemaker+DRBD實現MySQL高可用集群

    前言 在眾多的高可用集群解決方案中,除了Heartbeat之外,Corosync也能提供類似于Heartbeat一樣的功能,而且目前RedHat官方提供的高可用集群解決方案的程序包都以Corosync為主,所以今后Corosync會逐漸取代Heartbeat。本文帶來的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解決方案。 …

    Linux干貨 2015-06-12
  • 零距離接觸軟RAID0和RAID5以及邏輯卷LVM

    一、創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄 1、首先手動給虛擬機添加兩塊硬盤 2、添加硬盤后,無需關機,直接讓內核掃描添加的磁盤 [root@centos6 ~]# echo '- – -' >&nbsp…

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