盤點Linux運維常用工具(一)-web篇之httpd
阿新 • • 發佈:2020-03-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加密的埠為4435、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 #檢視埠