Apache WEB服務器企業實戰php
萬維網 (WORLD WIDE WEB,WWW)服務器,也稱之爲WEB服務器,主要功能是提供網上信息瀏覽服務。WWW是 Internet的多媒體信息查詢工具,是Internet上飛快發展的服務,也是目前用的最普遍的服務。正是由於有了WWW軟件,才使得近年來 Internet 迅速發展。html
目前主流的WEB服務器軟件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、WebLogic、Jetty等。python
Prefork MPM工做原理linux
每輛汽車都有發動機引擎,不一樣的引擎,對車子運行效率也不同,一樣Apache也有相似工做引擎或者處理請求的模塊,亦可稱之爲多路處理模塊(Multi-Processing Modules,MPM),Apache WEB服務器有三種處理模塊:Prefork MPM、Worker MPM、Event MPM。nginx
在企業中最經常使用的處理模塊爲Prefork MPM和Worker MPM,Event MPM不支持HTTPS方式,官網也給出」This MPM is experimental, so it may or may not work as expected」提示,因此不多被使用。git
默認Apache處理模塊爲Prefork MPM方式,Prefork採用的預派生子進程方式,Prefork用單獨的子進程來處理不一樣的請求,進程之間是彼此獨立的,因此比較穩定。github
Prefork的工做原理:控制進程Master在最初創建」StartServers」個進程後,爲了知足MinSpareServers設置的最小空閒進程,因此需建立第一個空閒進程,等待一秒鐘,繼續建立兩個,再等待一秒鐘,繼續建立四個,依次按照遞增指數級建立進程數,最多每秒同時建立32個空閒進程,直到知足至少有MinSpareServers設置的值爲止。web
Apache的預派生模式(Prefork),基於預派生模式,沒必要在請求到來時再產生新的進程,從而減少了系統開銷以增長性能,不過因爲Prefork MPM引擎是基於多進程方式提供對外服務,每一個進程佔內存也相對較高。sql
Apacheshell
主配置文件 /etc/httpd/conf/httpd.conf
訪問日誌文件 /var/log/httpd/access_log
日誌備份配置文件 /etc/logrotate.d/httpd
配置文件主目錄: /etc/httpd/conf/http.conf
默認發佈目錄是:/var/www/html
子配置文件目錄 /etc/httpd/conf.d/*
默認關聯上下文的狀況是 httpd_sys_content_t
通找到index 進行添加默認訪問目錄,其訪問順序分前後次序
apache 日誌文件位置 :/etc/httpd/logs/*
apache 的默認用戶爲apache
apache 有同步阻塞功能,使用的意義是在有多個文件時是順序訪問的
apache 的默認安裝目錄/usr/local/apache
常見Apache命令 :
pkill httpd #殺死以前安裝的apache服務
/usr/local/apache2/bin/apachectl start #啓動Apache
ps -ef | grep httpd #查看apache進程是否啓動
ssh -l 192.168.163.131 "sh /root/auto_config_apache.sh" #遠程執行腳本
scp -r auto_config_apache.sh root@192.168.163.131:/root/ #遠程拷貝文件和目錄
用戶請求的URI(具體請求的文件),Apache判斷文件是否屬於靜態或者動態文件,若是是靜態文件直接解析並處理,將數據返回給瀏覽器,瀏覽器經過MIME調用相應軟件解析內容,渲染生成WEB頁面。
若是用戶請求的是PHP動態文件,Apache是不能直接解析的,Apache將該文件於PHP模塊。
Apache HTTP Server 簡稱爲 Apache。它的發佈獲得Apache許可證 2.0 版的許可。該web服務器自身使用模塊化架構,加載mod_proxy模塊能夠增長服務器代理/ 網關的功能,加載mod_proxy_balancer模塊能夠爲全部支持的協議提供負載平衡。在v2.4版本里,Apache可經過全新的mod_http2模塊支持HTTP/2。
Apache服務器,提供的子進程的缺省的用戶是root
Apache與Tomcat關係
Apache是一款開源的Web服務器產品,大部分都用C語言編寫(你直接理解成用C語言編寫算了)。全世界使用量排名第一的Web服務器。另外,Apache也是一個開源軟件基金會的名字,其下管理不少開源項目,也包括這款叫Apache的Web服務器軟件。
Tomcat一樣是一款開源的Web服務器產品,使用Java語言編寫。也同Apache服務器同樣,提供Web服務,但Tomcat主要用於承載JSP、CGI等服務端處理腳本,並提供運行環境,處理客戶端請求,再輸出HTML返回給用戶。這類在服務端動態加載數據(可更改的數據)並回傳給客戶端瀏覽器的網站叫動態網站或動態網頁。相對的,還有一類叫靜態網頁的,就是數據不變更的網頁或網站,這類頁面可能是HTML或HTML文件集合。
apache主要有兩種工做模式:prefork(apache的默認安裝模式)和worker(能夠在編譯的時候加參數–with-mpm- worker選擇工做模式)
prefork的特色是:(預派生)
1.這種模式能夠沒必要在請求到來時再產生新的進程,從而減少了系統開銷
2.能夠防止意外的內存泄漏
3.在服務器負載降低的時候會自動減小子進程數
worker的特色是:支持混合的多線程多進程的多路處理模塊
若是對於一個高流量的HTTP服務器,worker MPM是一個比較好的選擇,由於worker MPM佔用的內存要比prefork要小。
Prefork mpm和Worker MPM 引擎區別 :
Prefork mpm模式 :使用多個進程,每一個進程只有一個線程,每一個進程在某個肯定的時間只能維持一個鏈接,穩定,內存開銷較高;
Worker MPM模式 :使用多個進程,每一個子進程包含多個線程,每一個線程在某個肯定的時間只能維持一個鏈接,內存佔用量比較小,適合大併發、高流量的WEB服務器。Worker MPM缺點是一個線程崩潰,整個進程就會連同其餘的任何線程一塊兒崩潰
默認Apache處理模塊爲 Prefork mpm方式, Prefork 採用的預派生子進程方式, Prefork用單獨的子進程來處理不一樣的請求,進程之間是彼此獨立的,因此比較穩定。
Apache 服務器的配置文件 httpd.conf 中有不少內容,請解釋以下配置項:
(1)MaxKeepAliveRequests 200 (2)UserDir public_html
(3)DefaultType text/plain (4)AddLanguare en.en
(5)DocumentRoot「/usr/local/httpd/htdocs」
(6)AddType application/x-httpd-php.php.php.php4
參考答案:
(1)容許每次鏈接的最大請求數目,此爲 200;(2)設定用戶放置網頁的目錄;
(3)設置服務器對於不認識的文件類型的預設格式;
(4)設置可傳送語言的文件給瀏覽器;(5)該目錄爲 Apache 放置網頁的地方;
(6)服務器選擇使用 php4。
試解釋 apache 服務器如下配置的含義:
(1)port 1080 (2)UserDir userdoc
(3)DocumentRoot 「/home/htdocs」
(4)<Directory /home/htdocs/inside>;
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
allow from 192.168.1.5
</Directory>;
(5)Server Type Standlone
參考答案:
Apache 服務器配置行含義以下:
(1)將 apache 服務器的端口號設定爲 1080;
(2)設定用戶網頁目錄爲 userdoc;
(3)設定 apache 服務器的網頁根目錄:/home/htdocs;
(4)在此 apache 服務器上設定一個目錄/home/htdocs/inside,且此目錄只容許 IP 地
址爲 192.168.1.5 的主機訪問;
(5)定義 apache 服務器以獨立進程的方式運行。
Apache主要提供的是靜態頁面處理,對於動態頁面處理這類問題,可能是做爲其擴展的一部分由其餘語言或第三方插件控制。能夠這樣想,Apache提供了一箇中轉,將不一樣的數據請求分發到各個對應的模塊,PHP請求發送 到對應的PHP模塊,CGI請求則建立一個進程並調用CGI腳本,這時候當對應模塊處理完,將做爲輸出返回給Apache服務器,Apache服務器再將這些結果(HTML頁面)返回給客戶端瀏覽器。 而Tomcat雖然也是個服務器(這裏咱們只討論做爲Java Servlet容器的實現),接受的只能是對JSP的請求。Tomcat是按照J2EE發佈的JSP和Servlet標準實現的,徹底支持這兩種標準,被做爲一個Servlet容器實現。當Tomcat接收到JSP頁面請求時,先用Tomcat解析,獲得相應的參數,再找到對應的Servlet路由,以後調用Servlet接口中的對應方法(Get、Post、Delete、Put等),處理客戶端傳回的數據或請求動做,最後獲得輸出,返回給Tomcat,Tomcat再使用JSP渲染出HTTP,傳回客戶端瀏覽器。
Apache Tomcat
Apache只支持靜態網頁,但像php,cgi,jsp等動態網頁就須要Tomcat來處理。
最主要的兩種模式是prefork 模式與worker 模式。prefork 每一個子進程只有一個線
程,效率高但消耗內存大,是unix 下默認的模式;worker 模式每一個子進程有多個線程,
內存消耗低,但一個線程崩潰會牽連其它同子進程的線程。
Apache 服務器進程配置文件是httpd.conf 。
prefork 的特色是:(預派生)
1.這種模式能夠沒必要在請求到來時再產生新的進程,從而減少了系統開銷
2.能夠防止意外的內存泄漏
3.在服務器負載降低的時候會自動減小子進程數
worker 的特色是:支持混合的多線程多進程的多路處理模塊
若是對於一個高流量的HTTP 服務器,worker MPM 是一個比較好的選擇,由於worker
MPM 佔用的內存要比prefork 要小。
Worker 模式 : 以多個線程提供服務,全部的線程共享內存空間,一個down掉,整個進程奔潰,適合高併發的場景。
Preforj 模式 :多個進程提供服務,比較穩定,佔用內存高,提供中小訪問併發。
Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器。
Apache,nginx,tomcat並稱爲網頁服務三劍客
Apache Tomcat是在Apache許可證 2.0 版的受權下進行發佈的,一般用於運行Java應用程序。此外,它可以經過Coyote的擴展,扮演爲本地文件HTTP文檔服務的普通服務器的角色。
Apache 2.X的工做模式
Apache有三種工做模式:分別是 prefork,worker,event。
prefork
(多進程,每一個進程產生子進程)
prefork 是一種非線程、與派生的工做模式,用的是進程去處理請求,因此比較容易消耗內存,可是穩定性好,某個進程出現問題不會影響到其餘請求。
worker
(多進程,每一個進程生成多個線程)
worker是使用多個子進程、每一個子進程有多個線程、因爲使用的是線程去處理請求,消耗內存小,適合高流量的請求,可是若是某個進程出現問題,那麼這個進程下的線程都會出現問題,即穩定性不是很好。
event
event模式,是爲解決keep-alive保持長鏈接出現的一種工做模式,使用keep-alive長鏈接的時候,某個線程會一直被佔用,即便中間沒有請求,須要等到超時纔會被釋放,因此這個時候就出現了event的工做模式就出現了。
如 何 配 置 模 塊
查當前工做模式
用命令(httpd -l)查看
配置工做模式
在安裝的時候須要指定模式:
[root@localhost httpd-2.4.1]# ./configure --prefix=/usr/local/apache2worker --enable-so --with-mpm=worker [root@localhost httpd-2.4.1]# make [root@localhost httpd-2.4.1]# make install
--with-mpm=worker 選項指定工做模式爲worker,不指定模式的話,默認爲Prefork。
3 種模式解析
配置在.../apache/conf/extra/httpd-mpm.conf文件。
perfork
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 250 MaxConnectionsPerChild 0 </IfModule>
# StartServers
數量的服務器進程開始。
# MinSpareServers
最小數量的服務器進程,保存備用。
# MaxSpareServers
最大數量的服務器進程,保存備用。
# MaxRequestWorkers
最大數量的服務器進程容許開始。
# MaxConnectionsPerChild
最大鏈接數的一個服務器進程服務。
worker
<IfModule mpm_worker_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 </IfModule>
# StartServers
初始數量的服務器進程開始。
# MinSpareThreads
最小數量的工做線程,保存備用。
# MaxSpareThreads
最大數量的工做線程,保存備用。
# ThreadsPerChild
固定數量的工做線程在每一個服務器進程。
# MaxRequestWorkers
最大數量的工做線程。
# MaxConnectionsPerChild
最大鏈接數的一個服務器進程服務。
event
<IfModule mpm_event_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 </IfModule>
# StartServers
初始數量的服務器進程開始。
# MinSpareThreads
最小數量的工做線程,保存備用。
# MaxSpareThreads
最大數量的工做線程,保存備用。
# ThreadsPerChild
固定數量的工做線程在每一個服務器進程。
# MaxRequestWorkers
最大數量的工做線程。
# MaxConnectionsPerChild
最大鏈接數的一個服務器進程服務。
衆所周知,Nginx在處理大併發靜態請求方面,效率明顯高於httpd,甚至能輕鬆解決C10K問題。
在高併發鏈接的狀況下,Nginx是Apache服務器不錯的替代品。Nginx同時也能夠做爲7層負載均衡服務器來使用。根據個人測試結果, Nginx0.7.14+PHP5.2.6(FastCGI)能夠承受3萬以上的併發鏈接數,至關於同等環境下Apache的10倍。
通常來講,4GB內存的服務器+Apache(prefork模式)通常只能處理3000個併發鏈接,由於它們將佔用3GB以上的內存,還得爲系統預留1GB的內存。我曾經就有兩臺Apache服務器,由於在配置文件中設置的MaxClients爲4000,當Apache併發鏈接數達到3800時,致使服務器內存和Swap空間用滿而崩潰。
而這臺Nginx0.7.14+PHP5.2.6(FastCGI)服務器在3萬併發鏈接下,開啓的10個Nginx進程消耗150M內存(15M*10=150M),開啓的64個php-cgi進程消耗1280M內存(20M*64=1280M),加上系統自身消耗的內存,總共消耗不到2GB內存。若是服務器內存較小,徹底能夠只開啓25個php-cgi進程,這樣php-cgi消耗的總內存數才500M。
在3萬併發鏈接下,訪問Nginx0.7.14+PHP5.2.6(FastCGI)服務器的PHP程序,仍然速度飛快。
爲何Nginx在處理高併發方面要優於httpd,咱們先從兩種web服務器的工做原理以及工做模式提及。
apache三種工做模式
咱們都知道Apache有三種工做模塊,分別爲prefork、worker、event。
prefork:多進程,每一個請求用一個進程響應,這個過程會用到select機制來通知。
worker:多線程,一個進程能夠生成多個線程,每一個線程響應一個請求,但通知機制仍是select不過能夠接受更多的請求。
event:基於異步I/O模型,一個進程或線程,每一個進程或線程響應多個用戶請求,它是基於事件驅動(也就是epoll機制)實現的。
4.2prefork的工做原理
若是不用「--with-mpm」顯式指定某種MPM,prefork就是Unix平臺上缺省的MPM.它所採用的預派生子進程方式也是Apache1.3中採用的模式。prefork自己並無使用到線程,2.0版使用它是爲了與1.3版保持兼容性;另外一方面,prefork用單獨的子進程來處理不一樣的請求,進程之間是彼此獨立的,這也使其成爲最穩定的MPM之一。
4.3worker的工做原理
相對於prefork,worker是2.0版中全新的支持多線程和多進程混合模型的MPM。因爲使用線程來處理,因此能夠處理相對海量的請求,而系統資源的開銷要小於基於進程的服務器。可是,worker也使用了多進程,每一個進程又生成多個線程,以得到基於進程服務器的穩定性,這種MPM的工做方式將是Apache2.0的發展趨勢。
4.4event基於事件機制的特性
一個進程響應多個用戶請求,利用callback機制,讓套接字複用,請求過來後進程並不處理請求,而是直接交由其餘機制來處理,經過epoll機制來通知請求是否完成;在這個過程當中,進程自己一直處於空閒狀態,能夠一直接收用戶請求。能夠實現一個進程程響應多個用戶請求。支持持海量併發鏈接數,消耗更少的資源。
如何提升Web服務器的併發鏈接處理能力
有幾個基本條件:
1.基於線程,即一個進程生成多個線程,每一個線程響應用戶的每一個請求。
2.基於事件的模型,一個進程處理多個請求,而且經過epoll機制來通知用戶請求完成。
3.基於磁盤的AIO(異步I/O)
4.支持mmap內存映射,mmap傳統的web服務器,進行頁面輸入時,都是將磁盤的頁面先輸入到內核緩存中,再由內核緩存中複製一份到web服務器上,mmap機制就是讓內核緩存與磁盤進行映射,web服務器,直接複製頁面內容便可。不須要先把磁盤的上的頁面先輸入到內核緩存去。
恰好,Nginx支持以上全部特性。因此Nginx官網上說,Nginx支持50000併發,是有依據的。
Nginx優異之處
傳統上基於進程或線程模型架構的web服務經過每進程或每線程處理併發鏈接請求,這勢必會在網絡和I/O操做時產生阻塞,其另外一個必然結果則是對內存或CPU的利用率低下。生成一個新的進程/線程須要事先備好其運行時環境,這包括爲其分配堆內存和棧內存,以及爲其建立新的執行上下文等。這些操做都須要佔用CPU,並且過多的進程/線程還會帶來線程抖動或頻繁的上下文切換,系統性能也會由此進一步降低。另外一種高性能web服務器/web服務器反向代理:Nginx(EngineX),nginx的主要着眼點就是其高性能以及對物理計算資源的高密度利用,所以其採用了不一樣的架構模型。受啓發於多種操做系統設計中基於「事件」的高級處理機制,nginx採用了模塊化、事件驅動、異步、單線程及非阻塞的架構,並大量採用了多路複用及事件通知機制。在nginx中,鏈接請求由爲數很少的幾個僅包含一個線程的進程worker以高效的迴環(run-loop)機制進行處理,而每一個worker能夠並行處理數千個的併發鏈接及請求。
Nginx工做原理
Nginx會按需同時運行多個進程:一個主進程(master)和幾個工做進程(worker),配置了緩存時還會有緩存加載器進程(cacheloader)和緩存管理器進程(cachemanager)等。全部進程均是僅含有一個線程,並主要經過「共享內存」的機制實現進程間通訊。主進程以root用戶身份運行,而worker、cacheloader和cachemanager均應以非特權用戶身份運行。
在高鏈接併發的狀況下,Nginx是Apache服務器不錯的替代品
Nginx安裝很是的簡單,配置文件很是簡潔(還可以支持perl語法),Bugs很是少的服務器:Nginx啓動特別容易,而且幾乎能夠作到7*24不間斷運行,即便運行數個月也不須要從新啓動.你還可以不間斷服務的狀況下進行軟件版本的升級。
Nginx的誕生主要解決C10K問題
最後咱們從各自使用的多路複用IO模型來分析:select模型:(apache使用,因爲受模塊等限制,用的很少)
單個進程可以監視的文件描述符的數量存在最大限制
select()所維護的存儲大量文件描述符的數據結構,隨着文件描述符數量的增加,其在用戶態和內核的地址空間的複製所引起的開銷也會線性增加
因爲網絡響應時間的延遲使得大量TCP鏈接處於非活躍狀態,但調用select()仍是會對全部的socket進行一次線性掃描,會形成必定的開銷
poll:poll是unix沿用select本身從新實現了一遍,惟一解決的問題是poll沒有最大文件描述符數量的限制
epoll模型:(nginx使用)
epoll帶來了兩個優點,大幅度提高了性能:
基於事件的就緒通知方式,select/poll方式,進程只有在調用必定的方法後,內核纔會對全部監視的文件描述符進行掃描,而epoll事件經過epoll_ctl()註冊一個文件描述符,一旦某個文件描述符就緒時,內核會採用相似call back的回調機制,迅速激活這個文件描述符,epoll_wait()便會獲得通知
調用一次epoll_wait()得到就緒文件描述符時,返回的並非實際的描述符,而是一個表明就緒描述符數量的值,拿到這些值去epoll指定的一個數組中依次取得相應數量的文件描述符便可,這裏使用內存映射(mmap)技術,避免了複製大量文件描述符帶來的開銷
固然epoll也有必定的侷限性,epoll只有Linux2.6纔有實現,而其餘平臺都沒有,這和apache這種優秀的跨平臺服務器,顯然是有些背道而馳了。簡單來講epoll是select的升級版,單進程管理的文件描述符沒有最大限制。但epoll只有linux平臺可以使用。做爲跨平臺的Apache沒有使用。
一、控制MaxClients的設置,以免服務器產生太多的子進程而發生交換。
進程間的數據交換會佔用很大內存,數據交換產生的滯後使用戶總感受」不夠快」,因此用戶就可能去按」中止」和」刷新」,從而帶來更大的負載。通常建議小網站將MaxClients設置爲12~24。
二、選擇更好的硬件,CPU、內存、硬盤等等
這句很雞肋啦,若是有更多的銀子,誰不肯意換更好的呢?
三、按期更新操做系統,打上系統補丁;若是你的操做系統支持sendfile()系統調用,則務必安裝帶有此功能的版本或補丁
在支持sendfile的系統中,Apache2能夠更快地發送靜態內容並且佔用較少的CPU時間。
四、HostnameLookups設置爲off
儘可能較少DNS查詢的次數。若是你使用了任何」Allow from domain」或」Deny from domain」指令(也就是domain使用的是主機名而不是IP地址),則代價是要進行兩次DNS查詢(一次正向和一次反向,以確認沒有做假)。因此,爲了獲得最高的性能,應該避免使用這些指令(不用域名而用IP地址也是能夠的)。
五、爲Directory加上FollowSymLinks
若是網站空間中沒有使用 Options FollowSymLinks ,Apache就必須執行額外的系統調用以驗證符號鏈接。例如:在請求」/index.html」時,Apache將對」/www」、」/www/htdocs」、」/www/htdocs/index.html」執行lstat()調用。並且lstat()的執行結果不被緩存,所以對每個請求都要執行一次。
六、將AllowOverride設置爲None
對於使用虛擬主機的朋友可能會以爲不方便,這樣設置將會使.htaccess中的設置失效,若是實在須要,而且在有條件的狀況下,請在conf配置文件中直接寫入rewrite規則
七、禁用內容協商
儘管在實踐中,內容協商的好處大於性能的損失,若是你很在乎那一點點的性能損失,則能夠禁止使用內容協商。可是仍然有個方法能夠提升服務器的速度,就是不要使用通配符。
八、MaxRequestsPerChild設置爲非0以防止內存泄漏
MaxRequestsPerChild用於控制apache子進程在什麼時候銷燬,默認爲0,表明永不銷燬子進程,這可能會存在內存泄漏的風險,建議設置爲10000
九、KeepAlive與KeepAliveTimeOut
若是你使用的使mpm_prefork模式(apache默認安裝),那麼建議你將KeepAlive設置爲off;由於,開啓keepalive會爲每一個客戶端創建一個鏈接,prefork不會建立線程,估計100個用戶同時訪問你的網站,apache就會掛了~,若是你實在想開啓,那麼請將KeepAliveTimeOut 時間設置更短些,例如5,默認是60秒呢
十、不要靜態編譯apache
儘管會有不少人和你說靜態編譯的好處,同時,你本身也想本身編譯一把,以體驗樂趣~可是,將模塊已靜態方式編譯進apache絕對不是一個好選擇,尤爲是對於缺銀子的站長們來講,一個配置不當,apache會在啓動時就佔用光你全部的內存,最後拖垮服務器。
參考連接 :
https://mp.weixin.qq.com/s/3F1M6uWOOV3BUXfoEU7DGQ
Apache優化方法,你知道幾個呢? : https://mp.weixin.qq.com/s/3F1M6uWOOV3BUXfoEU7DGQ
連接 :
apache Rewrite防盜鏈設置方法 : https://www.jb51.net/os/RedHat/2170.html
Gzip在apache2中的設置和squid對它的處理方法分析 : https://www.jb51.net/os/RedHat/2169.html
Apache服務器優化方法小結 : https://www.jb51.net/os/RedHat/2167.html
linux構建動態WEB服務器安裝篇 : https://www.jb51.net/os/RedHat/list92_47.html
apache 403錯誤 Forbidden解決方法 : https://www.jb51.net/os/RedHat/1303.html
查看Apache的在線用戶數方法 : https://www.jb51.net/os/RedHat/1308.html
獲取apache請求的header信息 : http://bean-li.github.io/apache-header-log/
原 apache,php經常使用配置 https://blog.csdn.net/tdcqfyl/article/details/51910731
原 windows下配置apache+https : https://blog.csdn.net/tdcqfyl/article/details/79023431
原 Apache配置項目圖片地址映射 : https://blog.csdn.net/tdcqfyl/article/details/81839562
原 Apache應用的認證配置(Linux環境) : https://blog.csdn.net/tdcqfyl/article/details/52021706
RHEL5 Apache+Tomcat整合,同時支持jsp與php : https://www.jb51.net/os/RedHat/1309.html
Linux系統Jsp的環境:Apache,Tomcat配置 : https://www.jb51.net/os/RedHat/1305.html
Apache安裝、配置、優化 : https://www.jb51.net/os/RedHat/1304.html
apache如何禁止使用IP訪問 : https://www.jb51.net/os/RedHat/1302.html
Linux httpd(apache)啓動失敗 解決辦法 : https://www.jb51.net/os/RedHat/1300.html
linux系統配置Apache虛擬主機實例 : https://www.jb51.net/os/RedHat/1288.html
如何修改apache 2最大鏈接數 : https://www.jb51.net/os/RedHat/1248.html
優化Apache,讓網站速度更快 : https://www.jb51.net/os/RedHat/1105.html
linux 下Apache設置與優化 : https://www.jb51.net/os/RedHat/1058.html
利用apache防盜連方法 : https://www.jb51.net/os/RedHat/1060.html
php5-fpm一直沒法監聽9000端口 | Nginx配置TP5 : https://www.jianshu.com/p/afc2163f6790
Apache2對CGI的支持配置{C++與python} : https://www.jianshu.com/p/69f06f83e08a
配置apache運行cgi程序 : https://www.cnblogs.com/itech/archive/2013/04/06/3002831.html
Apache支持Python之CGI編程環境 : https://www.jianshu.com/p/99099f5a328f
Apache2服務器反代理配置 : https://www.jianshu.com/p/15538d9f7a67
centos安裝apache : https://www.cnblogs.com/itech/archive/2013/04/06/3002762.html
整合apache和tomcat構建Web服務器 : https://www.cnblogs.com/itech/archive/2011/09/23/2186533.html
Apache如何開啓Rewrite功能 : http://blog.51cto.com/zlyang/1788758
輕鬆構建Mysql高可用集羣系統 : https://www.cnblogs.com/itech/archive/2011/10/08/2202177.html
企業級Apache詳解 : https://www.cnblogs.com/ftl1012/p/apache.html
企業級Apache詳解2 : https://www.cnblogs.com/ftl1012/p/apache2.html
原 Linux下 Apache服務器配置CGI(perl) : https://blog.csdn.net/u012842205/article/details/48213609
原 Linux 下修改默認openJDK爲Oracle JDK搭建Apache-Tomcat (Kali) : https://blog.csdn.net/u012842205/article/details/46472081
Apache與Tomcat關係 : https://blog.csdn.net/u012842205/article/details/52086030
Apache的主配置文件:/etc/httpd/conf/httpd.conf : http://blog.51cto.com/11638832/1846665
apache以mod_proxy實現負載均衡集羣 薦 : http://blog.51cto.com/zhaochj/1650557
apache以mod_jk方式實現tomcat的負載均衡集羣 : http://blog.51cto.com/zhaochj/1642199
apache兩種方案三種方式實現反向代理tomcat 薦 :http://blog.51cto.com/zhaochj/1641939
Apache配置壓縮優化時報錯——undefined symbol: inflateEnd 薦 : http://blog.51cto.com/nolinux/1345264
Linux下性能測試工具ab (ApacheBench) : https://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5NTMzNzQxMw==&appmsgid=10000010&itemidx=1&sign=6da6f21df524a577c31005ad605ecab8&mpshare=1&scene=1&srcid=0226VJqVtVsylViWw1BWec5E&uin=&key=&ascene=1&devicetype=Windows+10&version=62060619&lang=zh_CN&winzoom=1
Apache配置多個站點 : https://www.jianshu.com/p/5f8099002abb
Linux網站架構系列之Apache----調優篇 : http://blog.51cto.com/nolinux/1320638
Linux網站架構系列之Apache----進階篇 薦 : http://blog.51cto.com/nolinux/1320167
Linux網站架構系列之Apache----部署篇 : http://blog.51cto.com/nolinux/1319750
日誌分析工具Awstats實戰之Apache篇-多站點日誌分析 薦 : http://blog.51cto.com/nolinux/1318052
Web服務基礎一之Apache源碼和YUM安裝 薦 : http://blog.51cto.com/ityunwei2017/1352138
Web服務基礎二之Apache主配置文件httpd.conf : http://blog.51cto.com/ityunwei2017/1352360
Web服務基礎三之Apache虛擬主機、虛擬目錄配置 : http://blog.51cto.com/ityunwei2017/1352579
Web服務基礎四之Apache訪問控制 薦 : http://blog.51cto.com/ityunwei2017/1353149
Web服務基礎五之yum安裝配置LAMP環境+博客系統WordPress 薦 : http://blog.51cto.com/ityunwei2017/1353901
Web服務基礎六之編譯安裝配置RHEL+Apache+MySQL+PHP+ZendOptimize 薦 : http://blog.51cto.com/ityunwei2017/1360472
Web服務基礎七之Apache日誌文件管理、默認網站目錄更改、防止php***跨站設置、禁止空主機頭 薦 : http://blog.51cto.com/ityunwei2017/1369871
高性能反向代理Apache Traffic Server配置小記 [ats cdn cache] : http://blog.51cto.com/rfyiamcool/1319479
Apache配置與應用,虛擬目錄;訪問控制;虛擬Web主機(多域名;多端口), : http://blog.51cto.com/13728740/2157688
Apache網頁優化與安全優化(網頁壓縮;網頁緩存;網頁防盜鏈;隱藏版本信息) : http://blog.51cto.com/13728740/2157405
AWStats日誌分析Apache提供的Web站點訪問狀況 : http://blog.51cto.com/13728740/2156291
編譯apache出現的兩個小錯誤libexpat.so總結 : https://www.ixdba.net/archives/2017/03/505.htm
apache中併發控制參數prefork理解和調優 : https://www.ixdba.net/archives/2017/03/499.htm
CentOS7.4 部署 Django + Python3 + Apache + Mod_wsgi : https://www.jianshu.com/p/e3afd572f1be
CentOS下安裝Apache Bench進行網站壓力測試 ab工具使用 圖文教程 : https://www.jiloc.com/tag/centos
Hadoop深度運維:Apache集羣原地升級Ambari-HDP : https://mp.weixin.qq.com/s/sVmJ0i758tf9PStkKLRQDg
linux下apache開啓url重寫的方法(詳細說明) : https://www.jb51.net/article/30120.htm
Apache 虛擬目錄和默認首頁的設置 :https://www.jb51.net/article/20806.htm
Linux下模擬http的get/post請求(curl or wget)詳解 : https://www.jb51.net/article/113451.htm
apache服務器一個ip(如:127.0.0.1)和多個域名(虛擬主機)的綁 : https://www.jb51.net/article/59927.htm
apache的access.log和error.log減肥 : https://www.jb51.net/article/19893.htm
Apache2.4.x版wampserver本地php服務器如何讓外網訪問及啓用.hta : https://www.jb51.net/article/61193.htm
智能監測自動重啓Apache服務器的Shell腳本 : https://www.jb51.net/article/113971.htm
Shell腳本判斷Apache進程是否存在: https://www.jb51.net/article/58764.htm
Shell腳本實現分析apache日誌中ip所在的地區: https://www.jb51.net/article/58877.htm
Shell腳本實現apache日誌中的狀態碼分析: https://www.jb51.net/article/59056.htm
令Apache中沉睡的無用進程自動退出的方法 : https://www.jb51.net/article/68135.htm
Centos7.4服務器安裝apache及安裝過程出現的問題解決方法 :https://www.jb51.net/article/157871.htm
在CentOS上安裝搭建PHP+Apache+Mysql的服務器環境 : https://www.jb51.net/article/158201.htm
服務器Apache與Tomcat和Nginx的理解和對比分析詳解 : https://www.jb51.net/article/159028.htm
Apache服務器必備基本安全設置 :https://www.jb51.net/article/48069.htm
apache自建證書實現https : https://www.jianshu.com/p/605065c0d42f