HTTP服務安裝與配置


HTTP服務初識

  • http請求流程

    1. 建立、處理連接
    2. 接受請求
    3. 處理請求
    4. 訪問資源
    5. 構建響應報文
    6. 發送響應報文
    7. 記錄日志
  • 提供http服務的軟件

    • 靜態資源web程序
      • httpd(apache)
      • nginx
      • lighttpd
    • 動態資源web程序
      • IIS
      • tomcat、jboss、jetty (輕量級)
      • weblogic、webshpere (企業級)
  • apache httpd的特點

    1. 高度模塊化
    2. DSO動態共享對象
    3. MPM多路訪問模塊
      • prefork:多進程模型,每個進程響應一個請求。一個主進程(監聽套接字),負責生成n個子進程,子進程為工作進程,沒有用戶請求,也會生成空閑進程,等待新的請求,最大不超過1024個進程
      • worker:多線程模型(多進程生成,一個進程生成多個線程),一個線程響應一個請求
      • event:事件驅動模型,多個進程,一個進程響應多個請求
  • 查看當前所使用的MPM模塊(默認為prefork)
    ps -aux | grep http
    image-20191028155311771

  • httpd -M #查看所有加載的模塊
    image-20191028154218576

  • httpd 2.2修改所使用的MPM模式
    image-20191028151455484
    image-20191028155513043
    image-20191028155243936
    image-20191028155311771

  • httpd 2.4 修改配置文件/etc/httpd/conf.modules.d/00-mpm.conf 加載指定的MPM模塊

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #加載prefork多進程模式
LoadModule mpm_worker_module modules/mod_mpm_worker.so	#加載work多線程模式
LoadModule mpm_event_module modules/mod_mpm_event.so #加載event事件驅動模式
  • 其他相關知識
    • URI: Universal Resource Identifier 統一資源標志符 ,由三部分組成:訪問資源的命名機制,存放資源的主機名,資源自身的名稱
    • URL:Universal Resource Locator 統一資源定位符 ,由三部分組成:第一部分是協議(或稱為服務方式);第二部分是存有該資源的主機IP地址(有時也包括端口號);第三部分是主機資源的具體路徑
    • PV:page view(一次頁面的訪問) 即頁面訪問量,每打開一次頁面PV計數+1,刷新頁面也是。包括全站PV,首站PV等
    • UV:user view (多少用戶訪問過,跟頁面數量多無關,表現為用戶活躍度,一台電腦終端為一個訪客)
    • AC:Active connection 活動連接數,當前在使用的活動的連接數
    • IV:是IP訪問數指獨立IP訪問數,一個獨立的IP在一個計算時段內訪問網站計算為1次IP訪問數。在同一個計算時段內不管這個IP訪問多少次均計算為1次。計算時段有以1天為一個計算時段,也有以1個小時為一個計算時段。
    • qps:每秒查詢數 並發/響應
    • 並發:多個客戶機同時請求服務器資源,服務器對多個請求交替進行響應
    • 並行:多個客戶機同時請求服務器資源,服務器同時對多個請求進行響應
    • 進程:是程序的運行實體,進行資源分配的基本單位,擁有獨立的資源,進程之間相互獨立一個進程可以包含多個線程
    • 線程:程序執行的最小單位,線程間共享進程的資源,線程間通信更方便

HTTP服務安裝與初始化配置

環境:
http2.2 服務端:Centos6.10 192.168.10.110
windows客戶端:windows 10 10.10.86.68
Linux客戶端:Centos6.10 192.168.10.111

  1. 安裝httpd(需要關閉防火牆、selinux)
    image-20191028142644038
  2. 備份配置文件/etc/httpd/conf/httpd.conf
    image-20191028143053888
  3. 默認配置文件如下
ServerTokens OS  #服務器標識
ServerRoot "/etc/httpd" #服務器根,其他配置文件的相對目錄
PidFile run/httpd.pid 
Timeout 60 #響應超時時長(秒)
KeepAlive Off #是否保持長連接
MaxKeepAliveRequests 100 #長連接最大請求次數
KeepAliveTimeout 15 #同一用戶同一連接的長連接超時時長(秒)

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
#Listen 127.0.0.1:80 #監聽的ip和端口,可以為多個
#Listen [::1]:80 #使用ipv6時需要將ip地址括起來
Listen 80 #監聽端口

#LoadModule為加載的模塊
LoadModule auth_basic_module modules/mod_auth_basic.so 
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
...
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

Include conf.d/*.conf
 
User apache  #提供服務的用戶
Group apache #提供服務的用戶組

ServerAdmin root@localhost #錯誤發送郵箱
UseCanonicalName Off 

DocumentRoot "/var/www/html" #網站根目錄

<Directory /> #指定根的一組配置
    Options FollowSymLinks
    AllowOverride None 
</Directory>

<Directory "/var/www/html"> #/var/www/html該目錄的一組配置
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny #訪問控制,先檢查allow后檢查deny,后面的規則會覆蓋前面規則
#    Order Mutual-failure  #只有出現在allow中且未出現在deny中的允許訪問
#    Order deny,allow  #先檢查deny
    Allow from all #設定允許的范圍,all允許所有
#    Deny from all #設定拒絕的范圍,all拒絕所有
</Directory>


DirectoryIndex index.html index.html.var #網站首頁名

AccessFileName .htaccess


<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

TypesConfig /etc/mime.types #MIME類型配置文件
DefaultType text/plain #默認MIME內容類型
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn	#日志級別
               #emerg  緊急(系統無法使用)
               #alert    必須立即采取措施
               #crit      致命情況
               #error    錯誤情況
               #warn    警告情況
               #notice  一般重要情況
               #info     普通信息
             	#debug   調試信息
#LogFormat定義日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access_log combined	#設置日志文件名和格式
ServerSignature On	
Alias /icons/ "/var/www/icons/" #Alias命名的別名

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

AddDefaultCharset UTF-8 #默認字符集
...
  1. 修改配置如下
    image-20191028155732617
    image-20191028155851644
    image-20191028160131827
    image-20191028160550278
    image-20191028160752010
  2. 分別在/var/www/html和/var/www/html/sub下創建主頁
    image-20191028160920301
    image-20191028161125118
    image-20191028161214481
    image-20191028161258492
  3. 重啟服務
    image-20191028161430153

  • image-20191028161510852
  • 也可以不重啟,只重載配置
    image-20191028161552319
  1. windows客戶端測試
    image-20191028161655687
    image-20191028161717286
  2. linux客戶端curl命令測試
    image-20191028162250367
    image-20191028162333010


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM