nginx和apache的常見問題一

2021-10-19 11:00:33 字數 1432 閱讀 8138

nginx預設判斷失敗節點狀態以error錯誤和timeout超時狀態為準,而不是以錯 誤狀態碼來判斷,因為畢竟有狀態碼返回,證明這個節點還是可以正常連線的。我們可以新增proxy_next_upstream指令設定對錯誤狀態碼的請求轉到其他後 臺處理,這樣才會將這些狀態碼的請求視為失敗節點狀態。如果所有的後台節點返回的都是錯誤狀態碼,那麼就會返回給使用者錯誤資訊。 對單個後台節點來說,每返回一次錯誤狀態碼就會使這個節點的fails加一,當 fails的值達到maxfails後,nginx就會將該節點置於down失效的狀態,在接下來的 failtimeout時間內不會再訪問該節點,只有在這個時間過去後或者其他所有後台節點 都失效了才會再次探測這個節點。 如果重新探測所有的節點還是失效,就會返回502閘道器錯誤,下次訪問還會重複 之前的步驟。

我們之前用的是nginx靜態伺服器,nginx的防盜鍊是基於乙個http_referes模組 實現的。使用location匹配所有的,可以是jpg、png結尾的匹配,也可以是對 乙個目錄的匹配,然後在下面加入一條valid_referes 代表白名單,只有寫在後面的ip 或主機才能訪問到,其他的訪問都將其重寫到403forbidden去,防盜煉就設定 完畢了。

當然,nginx有很多第三方模組,我們也可以使用第三方模組達到防盜的作 用,我知道的一種就是ngx_http_accesskey模組,它可以通過md5加密來實現防盜 鏈,但是需要程式的配合。

1nginx是乙個輕量級服務,它比apache占用的記憶體等資源更少,它的抗併發能力 比apache更強,因為它是非同步非阻塞的,而apache是阻塞型的,

2nginx還可以用來做反向**和負載均衡,但是apache擁有的模組更多,功能更全面,apache還能支 持動態頁面,它的效能更穩定,而nginx相對bug較多。

3 apache在linux上有三種工作模式,分別是prework、worker和event。 prefork是乙個非執行緒型的、預派生的mpm(多程序處理模組),使用多個進 程,每個程序在某個確定的時間只單獨處理乙個連線,效率高,也很安全,乙個請求 出現問題也不會影響到別的請求,但記憶體使用比較大,無法支援高併發請求。 worker使用了多程序和多執行緒的混合模式,worker模式也同樣會先預派生一些 子程序,然後每個子程序建立一些執行緒,每個請求過來會被分配到乙個執行緒來服務。 它的記憶體使用相對減少,在高併發請求下表現也會更好。但是如果乙個執行緒出現問題 會導致同乙個程序下的所有執行緒出現問題,而且在使用keepalive長連線的時候,某 個執行緒會被一直占用,即使中間沒有請求,也要等到超時才能釋放,白白浪費資源。 event模式是apache最新的工作模式,它和worker模式相似,只是在event工作 模式中,會有一些專門的執行緒用來管理這些keep-alive型別的執行緒,當有真實請求過 來的時候,將請求傳遞給伺服器的執行緒,執行完畢後,又允許它釋放,增強了在高併發的場景下處理請求。

nginx和apache的比較

1.nginx的io是非阻塞的,apache的io是阻塞的。nginx accept乙個連線以後會把它放到epoll的訊息迴圈中,apache需要啟動乙個執行緒,當系統執行緒達到瓶頸以後,會阻塞網路io。2.nginx的併發比apache要高很多 因為apache乙個連線需要乙個執行緒,而nginx...

Apache和Nginx的區別

apache與nginx的優缺點比較 1 nginx相對於apache的優點 輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源 抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 高度模組化的設計,編寫模組相對...

Apache和nginx的比較

apache與nginx的優缺點比較 1 nginx相對於apache的優點 輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源 抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 高度模組化的設計,編寫模組相對...