1. 程式人生 > >盤點Linux運維常用工具(一)-web篇之httpd

盤點Linux運維常用工具(一)-web篇之httpd

#前言:想把自己學的各種服務進行分類歸檔起來,於是就寫了盤點Linux運維常用工具,Linux方面使用到的web應用服務有httpd(apache)、nginx、tomcat、lighttpd,先了解httpd服務

 

#httpd服務

1.簡單概述

1、HTTP 協議,全稱Hyper Text Transfer Protocol,中文名超文字傳輸協議
2、HTTP的重要應用之一是WWW服務,設定HTTP協議最初是提供一種釋出和接受HTML頁面的方法
3、www全稱world wide web(全球資訊網)
4、HTTP協議的WWW服務應用的預設埠為80,https加密的埠為443
5、http協議位於OSI模型中第七層應用層
6、官網:www.apache.org

 

#特點

1、2.2版本非常穩定強大,2.4版本效能更高
2、prefork模式取消了程序建立開銷
3、高併發時消耗系統資源相對多
4、支援擴充套件

 

#HTTP協議版本

#版本:0.9, 1.0, 1.1, 2.0,3.0
    0.9: 最初的版本,僅支援請求方法方式get
    1.0:增加了請求方式POST和HEAD
    1.1:引入了持久連線
    2.0:增加雙工模式(即不僅客戶端能夠同時傳送多個請求,服務端也能同時處理多個請求)
             也增加了伺服器推送功能
    3.0:基於UDP實現,基於UDP的多路複用,加密認證的報文

 

#HTTP狀態碼

是用來表示web伺服器響應http請求狀態的數字程式碼

#狀態碼可分為5大類

 

 #生產場景下的狀態碼及其對應的作用

 

#apache的工作模式

prefork:多程序,每個請求用一個程序響應
worker:多執行緒,一個程序可以生成多個執行緒,每個執行緒響應一個請求
event(http2.4之後新增):基於非同步I/O模型,一個程序或執行緒,每個程序或執行緒響應多個使用者

 

2.相關術語

#http請求方式

用於告訴web伺服器端需要執行哪些具體的動作:包括獲取指定web頁面,提交內容到伺服器、刪除伺服器上資原始檔等

#常用的HTTP請求方法

 

#http報文

#http報名可分為兩種

請求報文:從客戶端發往web伺服器的http報文
響應報文:從web伺服器發往web客戶端的報文

 

 

#請求報文

請求報文包括: 請求行,請求頭部,空行,請求報文主體
    
    請求行
        請求行是請求報文的第一行,用來說明客戶端想要做什麼。
        內容由請求方法欄位、URL欄位和HTTP協議版本欄位組成
        
    請求頭部
        請求頭部由關鍵字/值對組成,使用:作為分隔符,
        請求頭部的作用是通過客戶端把請求的相關資訊告訴給伺服器
        
    請求報文主體
        請求報文主體包括了要傳送給web伺服器的資料資訊,請求報文主體不會應用於HTTP的get命令方法

#響應報文

響應報文包括:狀態行,響應頭部,空行,響應報文主體

  起始行:
   也叫狀態行,用來說明伺服器響應客戶端請求的狀況
   一般為協議及版本號、數字狀態碼、狀態情況

 響應頭部:和請求報文類似,起始行的後面一般有若干個頭部欄位

  響應報文主體:響應報文主體中裝載了要返回給客戶端的資料

 

#URL介紹

全稱uniform resource location(統一資源定位符),也稱為網頁地址(網址)

#URL的組成

 由三部分組成: 第一部分是協議,如:http
             第二部分是主機資源伺服器IP地址或域名
             第三部分是主機資源的具體地址            

 

#URI介紹

全稱uniform resource identifier(統一資源識別符號),用於標識某一網際網路資源名稱的字串
URL是URI命名機制的一個子集

  

#靜態網頁介紹

在網站設計中,純碎的HTML格式的網頁通常稱為靜態網頁

#常見的靜態副檔名

純文字類程式或檔案,如.htm 、.html 、.xml 、.shtml 、.js 、.css 等。
圖片類檔案或資料文件,如.j pg 、.gif、.png 、.bmp 、.txt 、.doc 、.ppt 等。
視訊類流媒體檔案,如.mp4 、.swf、.avi 、.wmv 、. ftv


#動態網頁介紹

動態網頁和靜態網頁是相對的,以.php .js .asp等形式結尾的

#動態網頁的特點

1、網頁副檔名字尾常見為:.asp .aspx .php 
2、一般以資料庫技術為基礎
3、實現更多的功能
4、網址中有? &標誌性的符號

 

#偽靜態網頁介紹

偽靜態就是通過一些技術(如rewrite)把動態網頁的URL地址偽裝成靜態網頁URL地址,但實際還是動態網頁

 

#網站流量度量術語

IP
        Internet protocol。指獨立IP數,獨立IP數是指不同ip地址的計算機訪問網站時被計的總次數

PV
      (訪問量),即page view(頁面瀏覽),即頁面瀏覽或單擊量,不管客戶端是否相同,也不管ip是否相同,使用者只要訪問
          網站頁面就會被計算為PV,一次計一個PV

UV
         unique visitor(獨立訪客),同一個客戶端訪問網站被記為一個訪客,一天內相同的客戶端訪問同一個網站只會被計
         一次UV
         UV一般是以客戶端cookie等技術作為統計依據

#網站併發連線理解

網站伺服器在單位時間內能夠處理的最大連線數

 

3.安裝方法

#1.使用yum進行安裝

yum install httpd -y

#啟動服務

[root@ctos3 ~]# systemctl start httpd

 

#檢視httpd服務的目錄結構

[root@ctos3 ~]# tree /etc/httpd/
/etc/httpd/
├── conf
│   ├── httpd.conf  #主配置檔案
│   └── magic
├── conf.d
│   ├── autoindex.conf
│   ├── README
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d   #模組目錄
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   └── 01-cgi.conf
├── logs -> ../../var/log/httpd  #日誌
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd

 

#2.編譯安裝apache2.4

#1.安裝相關的包

yum groupinstall "Development Tools" "Development Libraries" -y   #安裝相關開發工具包
yum install gcc gcc-c++  openssl-devel bzip2 -y   #安裝依賴包

 

#2.編譯apache依賴的相關包

[root@ctos3 ~]# ls -l | grep -E  "apr|apr|pcre|httpd"
-rw-r--r--  1 root root 1031613 May 30  2016 apr-1.5.2.tar.gz
-rw-r--r--  1 root root  694427 May 30  2016 apr-util-1.5.4.tar.bz2
-rw-r--r--  1 root root 5101005 May 30  2016 httpd-2.4.16.tar.bz2
-rw-r--r--  1 root root 1557603 May 30  2016 pcre-8.37.tar.bz2

#提示:我這邊是將包下載下來了再使用rz(lrzsz包名)上傳的

#依賴包下載地址

apr和apr-utils:http://apr.apache.org/
prce:http://pcre.org

#2.1.編譯apr

[root@ctos3 ~]# tar xf apr-1.5.2.tar.gz -C /usr/local/src/
[root@ctos3 ~]# cd !$
cd /usr/local/src/
[root@ctos3 src]# cd apr-1.5.2/
[root@ctos3 apr-1.5.2]# ./configure  --prefix=/usr/local/apr
[root@ctos3 apr-1.5.2]# make -j 2 &&  make install

#提示:-j引數:使用CPU來進行編譯,加快速度

#2.2.編譯apr-util

[root@ctos3 ~]# yum install -y bzip2 
[root@ctos3 ~]# tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/
[root@ctos3 ~]# cd !$
cd /usr/local/src/
[root@ctos3 src]# cd apr-util-1.5.4/
[root@ctos3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@ctos3 apr-util-1.5.4]# make -j 2 &&  make install

#2.3.編譯pcre

[root@ctos3 ~]# tar xf pcre-8.37.tar.bz2 -C /usr/local/src
[root@ctos3 ~]# cd !$
cd /usr/local/src
[root@ctos3 src]# cd pcre-8.37/
[root@ctos3 pcre-8.37]# ./configure --prefix=/usr/local/pcre
[root@ctos3 pcre-8.37]# make -j 2 && make install 

 

#3.編譯安裝apache

[root@ctos3 ~]# tar xf httpd-2.4.16.tar.bz2 -C /usr/local/src/
[root@ctos3 ~]# cd !$
cd /usr/local/src/
[root@ctos3 src]# cd httpd-2.4.16/
[root@ctos3 httpd-2.4.16]# ./configure --prefix=/usr/local/apache2.4 --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
[root@ctos3 httpd-2.4.16]# make -j 2 && make install

#編寫apache的啟動指令碼

[root@ctos3 ~]# cp /usr/local/apache2.4/bin/apachectl  /etc/init.d/apache2.4

#新增
[root@ctos3 ~]# vim /etc/init.d/apache2.4 
[root@ctos3 ~]# head -n 3 /etc/init.d/apache2.4 
#!/bin/sh
#chkconfig:2345 64 36   #啟動級別的服務,2345指哪些級別啟動,64是開啟順序,36是關閉註釋
#description:Apache2.4.16 start script   #添加了這兩個欄位就可以使用chkconfig命令控制

[root@ctos3 ~]# /etc/init.d/apache2.4 start #啟動服務

[root@ctos3 ~]# chkconfig apache2.4 on  #新增開機自啟
[root@ctos3 ~]# ps aux | grep apache     #檢視apache的程序
[root@ctos3 ~]# ss -untpl | grep 80        #檢視埠