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

  • 2020 年 3 月 11 日
  • 筆記

#前言:想把自己學的各種服務進行分類歸檔起來,於是就寫了盤點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

 

#特點

12.2版本非常穩定強大,2.4版本性能更高  2、prefork模式取消了進程創建開銷  3、高並發時消耗系統資源相對多  4、支持擴展

 

#HTTP協議版本

#版本:0.9, 1.0, 1.1, 2.03.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        #查看端口

  

 

#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

 

#特點

12.2版本非常穩定強大,2.4版本性能更高  2、prefork模式取消了進程創建開銷  3、高並發時消耗系統資源相對多  4、支持擴展

 

#HTTP協議版本

#版本:0.9, 1.0, 1.1, 2.03.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        #查看端口