apache

来源:https://www.cnblogs.com/shenxm/archive/2018/02/23/8461432.html
-Advertisement-
Play Games

apache apache介紹 apache的特性 apache的功能 apache優缺點 httpd介紹 https :http over ssl ...


apache

apache介紹

    apache是個開源的網頁伺服器,也是個模塊化的伺服器。
    apache可以支持SSL技術,支持多個虛擬主機。
    apache是以進程為基礎的架構,進程要比線程消耗更多的系統開支,不太適合多處理器環境,因此在一個apache web 站點擴容時,通常是增加伺服器或擴充集群節點而不是增加處理器。

apache的特性

    1.支持HTTP/1.1通信協議
    2.擁有簡單而強有力的基於文件的配置過程
    3.支持通用網關介面
    4.支持基於IP和基於功能變數名稱的虛擬主機
    5.支持多種方式的HTTP認證
    6.集成Perl處理模塊
    7.集成代理伺服器模塊
    8.支持實時監視伺服器狀態和定製伺服器日誌
    9.支持伺服器端包含指令(SSI)
    10.支持安全Socket層(SSL)
    11.提供用戶會話過程的跟蹤
    12.支持FastCGI
    13.通過第三方模塊可以支持JavaServlets

apache的功能

    虛擬主機
        IP 、Port 、FQDN
    CGI :Common Gateway Interface ,通用網關介面
    反向代理
    負載均衡
    路徑別名
    豐富的用戶認證機制
        basic
        digest
    支持第三方模塊

apache優缺點

    apache的優點
        rewrite ,比nginx的rewrite 強大
            rewrite是一種伺服器的重寫脈衝技術,它可以使得伺服器可以支持 URL 重寫,它還可以實現限制特定IP訪問網站的功能。
        模塊超多,基本想到的都可以找到
        少bug ,nginx 的bug相對較多
        超穩定
        需要性能的web服務就用nginx ,如果不需要性能只求穩定那就apache 
        apache適合做動態,穩定且功能強
        
    apache的缺點
        apache相對於nginx占用的記憶體及資源較多
        apache的抗併發能力沒有nginx強,apache處理請求是採用阻塞型的。
        apache穩定性好但性能沒有nginx好。

httpd介紹

    1》httpd
        20世紀90年代初,國家超級電腦應用中心NCSA開發,1995年開源社區發佈apache (a patchy server) 
        ASF:apache software foundation
        FSF:Free Software Foundation
    2》特性:
        高度模塊化:core + modules
        DSO: Dynamic Shared Object  動態加/卸載
        MPM:multi-processing module 多路處理模塊
    3》MPM工作模式
        1)prefork:
            多進程I/O 模型,每個進程響應一個請求,預設模型。
            一個主進程:
                生成和回收n個子進程,創建套接字,不響應請求。
            多個子進程:
                工作work進程,每個子進程處理一請求。
                系統初始時,預先生成多個空閑進程,等待請求,最大不超過1024個。
![](https://images2018.cnblogs.com/blog/1250974/201802/1250974-20180223114705013-2104636226.png)
                
        2)worker:
            復用的多進程I/O 模型, 多進程多線程,IIS 使用此模型。
            一個主進程:
                生成m個子進程,每個子進程負責生成n個線程,每個線程響應一個請求,併發響應請求為m*n。
![](https://images2018.cnblogs.com/blog/1250974/201802/1250974-20180223114716219-612945086.png)
            
        3)event:
            事件驅動模型(worker模型的變種)
            一個主進程:
                生成m個子進程,每個進程直接響應n個請求,併發響應請求:m*n。
                有專門的線程來管理這些keep-alive 類型的線程,當有真實請求時,將請求傳遞給服務線程,執行完畢後,又允許釋放。
                這樣增強了高併發場景下的請求處理能力。
                在centos6中httpd-2.2的event是測試版,在centos7中httpd-2.4的event是穩定版。
![](https://images2018.cnblogs.com/blog/1250974/201802/1250974-20180223114728163-1259293637.png)
        
    4》進程角色
![](https://images2018.cnblogs.com/blog/1250974/201802/1250974-20180223114741123-1222132506.png)

    5》httpd功能特性
        虛擬主機
            IP 、Port 、FQDN
        CGI :Common Gateway Interface ,通用網關介面
        反向代理
        負載均衡
        路徑別名
        豐富的用戶認證機制
            basic
            digest
        支持第三方模塊
    
    6》httpd安裝
        版本:
            CentOS 6: 2.2
            CentOS 7: 2.4
        安裝方式:
            rpm :centos 發行版,穩定,建議使用
            編譯:定製或特殊需求

https :http over ssl

    1》SSL 會話的簡化過程
        (1)  客戶端發送可供選擇的加密方式,並向伺服器請求證書
        (2)  伺服器端發送證書以及選定的加密方式給客戶端
        (3)  客戶端取得證書併進行證書驗證
            如果信任給其發證書的CA
                (a)  驗證證書來源的合法性,用CA 的公鑰解密證書上數字簽名
                (b)  驗證證書的內容的合法性:完整性驗證
                (c)  檢查證書的有效期
                (d)  檢查證書是否被吊銷
                (e)  證書中擁有者的名字,與訪問的目標主機要一致
        (4)  客戶端生成臨時會話密鑰(對稱密鑰),並使用伺服器端的公鑰加密此數據發送給伺服器,完成密鑰交換
        (5)  服務用此密鑰加密用戶請求的資源,響應給客戶端
        註意:SSL 是基於IP地址實現, 單IP的主機僅可以使用一個https
    2》https 實現,配置httpd支持https
        (1)  為伺服器申請數字證書
            測試:通過私建CA發證書
                (a)創建私有CA
                (b)在伺服器創建證書簽署請求
                (c)CA 簽證
        (2)  配置httpd 支持使用ssl
            yum -y install mod_ssl
            配置文件:/etc/httpd/conf.d/ssl.conf
                DocumentRoot
                ServerName
                SSLCertificateFile
                SSLCertificateKeyFile
        (3)  測試基於https 訪問相應的主機
                openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]
    3》http 重定向https
        將http 請求轉發至https 的URL
        重定向
            Redirect [status] URL-path URL
            status 狀態:
                Permanent:Returns a permanent redirect status(301) indicating that the resource has movedpermanently
                Temp:Returns a temporary redirect status (302).This is the default
        示例:
            Redirect temp / https://www.magedu.com/
    4》HSTS
        HSTS:HTTP Strict Transport Security
            伺服器端配置支持HSTS 後,會在給瀏覽器返回的HTTP 首部中攜帶HSTS 欄位。
            瀏覽器獲取到該信息後,會將所有HTTP 訪問請求在內部做307 跳轉到HTTPS ,而無需任何網路過程。
        HSTS preload list
            是Chrome 瀏覽器中的HSTS 預載入列表,在該列表中的網站,使用Chrome 瀏覽器訪問時,會自動轉換成HTTPS 。
            Firefox 、Safari、 Edge 瀏覽器也會採用這個列表。
        實現HSTS 示例:
            vim /etc/httpd/conf/httpd.conf
                Header always set Strict-Transport-Security "max-age=15768000"
                RewriteEngine on
                RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
    
    5》httpd 自帶的工具程式
        htpasswd :basic 認證基於文件實現時,用到的賬號密碼文件生成工具
        apachectl :httpd 自帶的服務控制腳本,支持start 和stop
        apxs :httpd-devel 包提供,擴展httpd 使用第三方模塊工具
        rotatelogs :日誌滾動工具
            access.log -->
                access.log, access.1.log -->
                    access.log, acccess.1.log, access.2.log
        suexec :訪問某些有特殊許可權配置的資源時,臨時切換至指定用戶身份運行
        ab:apache benchmark
        
    6》httpd 的壓力測試工具
        ab, webbench, http_load, seige
        Jmeter開源
        Loadrunner商業,有相關認證
        tcpcopy:網易,複製生產環境中的真實請求,並將之保存
        ab [OPTIONS] URL
            來自httpd-tools包 
                -n :總請求數
                -c :模擬的並行數
                -k :以持久連接模式測試
                ulimit –n #  調整能打開的文件數

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 新年上班第一天,剛開機就遇到了個小坑,問題是這樣,打開瀏覽器,輸入任何網址都跳轉到本地的一個項目,該項目在本地Apache配置下,監聽的埠是8888,本機訪問的形式是127.0.0.1:8888。 問題截圖(訪問360搜索跳轉到本地127.0.0.1:8888,訪問百度等https協議的功能變數名稱報錯) ...
  • 越來越多的瀏覽器不在支持http協議了,這就要求你為你的網站必須綁定SSL證書。谷歌瀏覽器也將要在今年取消對http協議的支持,申請CA證書迫在眉睫。我購買有兩個功能變數名稱,一個虛擬機,沒事鼓搗鼓搗,圖個樂趣。在阿裡雲申請了免費證書,一直用的好好的。這次過年恰遇證書更新,想一起把所有功能變數名稱都升級到https ...
  • 1.定義整型數據類型INT16U之類取代int,short等與編譯器有關的類型定義,方便移植 2.全局變數的定義 在工裝項目中進行了實踐,每個模塊的代碼對應的頭文件包含對應全局變數,其中使用 #ifdef xxx_模塊 #define xxx_模塊 #else #define xxx_模塊 exte ...
  • 過完年回來, github不安分了, 發了博文說不支持TLSv1/TLSv1.1: Weak cryptographic standards removed, 沒看到這篇博文之前, 還以為是代理問題, 設置過, 還是不行, 還更新到最新的git, 還是不行, 就查了一下TLS協議, 終於通過git的 ...
  • Nginx介紹 nginx nginx的功能 nginx與web 服務相關的功能 nginx的特性 nginx程式架構 nginx 模塊 nginx的功用 nginx的安裝 nginx目錄和命令 nginx優缺點 ...
  • 一、Linux簡單介紹 二、虛擬機Linux中常用介紹 上一篇博文記錄瞭如何在虛擬機中安裝centOS,但是因為使用windows習慣了,所以記錄一下centOS常用的界面圖標 【註意】虛擬機的Linux中有一個比較坑的地方,那就是如果需要大寫,需要按住shift不放,然後輸入字元......筆者因 ...
  • 環境: win10 64位 Virtualbox 5.1.30 ubuntu-16.04.3-server-amd64.iso 1. 安裝好ubuntu後,打開virtualbox安裝路徑文件夾,找到VBoxGuestAdditions.iso(增強包)。如圖: 2. 點擊滑鼠右鍵,選擇裝載,就會看 ...
  • HTTP 2.2 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...