Nginx之大并發服務器架構實戰技法
對于高性能網站 ,請求量大,如何支撐?大體分為兩個部分。一部分是盡量減少對服務器的請求,另一方面是提高服務器的相應能力。減少服務器的請求能力,我這里列舉一下幾個方面,大家可以參考。
1:對于開發人員,盡量做到能夠合并css, 把多張背景圖片合并, 減少mysql查詢等。
2: 對于運維人員, nginx的expires 設置,利用瀏覽器緩存等,減少查詢。
3: 利用第三方的cdn來響應請求,以此來減少自身服務器的壓力。
4: 最終剩下的,不可避免的請求----服務器集群+負載均衡來支撐。
所以,來到第4步后,就不要再考慮減少請求這個方向了.而是思考如何更好的響應高并發請求。那么這也是我們今天著重要講的。
對于Nginx來說,客戶來請求Nginx 來響應,怎么響應,無非是讀取mysql 或者是直接讀取磁盤上的index.html 等等。兩個方向,第一是要建socket 連接,第二是要打開文件。這就牽扯到兩個硬性的限制。第一,你的socket 連接能不能建那么多。你的內存是不是足夠大,因為建立socket 連接都要內存維護著他們的信息的。你打開文件,操作系統允許不允許你一次打開那么多的文件。因為在默認情況下一個進程同時只能打開1024個文件。所以你想建立高并發,高并發無非就是建立的socket 連接多,打開的文件多。只有你這兩個方面能承的住。當然對你的網卡也是有要求的,起碼你的網卡能夠同時跑通那么多的流量。
知道了這兩個大的方向之后,我們排查問題就需要從這兩點入手。然后通過觀察系統的dmesg 和 nginx 的error.log 來逐步解決問題。其實在真實的生產環境里面,做東西都是哪里出錯了,跟著錯誤軌跡一點點去摸索的優化的。沒有一個固定的路子說照著什么做就能達到多大的并發。
以上是架構一個高并發 Nginx 服務器的大體思路和方案。在下一篇文章中,我將會拿一個實例,運用今天所講到的理論,從實操的角度來說明一下如何一步一步的把一個大并發的服務器架構起來。
責任編輯:任我行
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監管與當量協同的碳市場框架設計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉型與經濟發展并進
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
2020年二季度福建省統調燃煤電廠節能減排信息披露
2020-07-21火電環保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規范法律問題研究(上)
2019-10-31能源替代規范法律 -
區域鏈結構對于數據中心有什么影響?這個影響是好是壞呢!