當前位置:首頁 » 網頁前端 » 靜態web伺服器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

靜態web伺服器

發布時間: 2022-08-23 14:29:20

❶ Web伺服器性能和站點訪問性能該如何優化

今天小編要跟大家分享的文章是關於Web伺服器性能和站點訪問性能該如何優化?正在從web前端工作的小夥伴們來和小編一起看一看吧!

一、優化思路淺析


要優化Web伺服器的性能,我們先來看看Web伺服器在web頁面處理上的步驟:


1、Web瀏覽器向一個特定的伺服器發出Web頁面請求;


2、Web伺服器接收到web頁面請求後,尋找所請求的web頁面,並將所請求的Web頁面傳送給Web瀏覽器;


3、Web瀏覽器接收到所請求的web頁面內容,並將它顯示出來。


上面三個步驟都關系Web伺服器,但實際Web伺服器性能相關最大的是在第2步,這里Web伺服器需要尋找來自瀏覽器所請求的Web
頁面內容。


我們知道,Web頁面內容有靜態的,也有動態的,靜態的內容,web
伺服器可以直接將結果發回給瀏覽器,對於動態內容,則通常需要交給應用伺服器先處理,由應用伺服器返回結果。


當然,也有Web伺服器本身可以處理動態內容的,例如IIS就可以自已解釋處理ASP,ASP.NET這兩種微軟的動態網頁腳本語言。


從上面簡要的分析里,我們大致可以得到這樣的結論,影響Web頁面訪問的影響因素會有這幾個:


1、Web伺服器從磁碟中讀取靜態頁面內容的速度,也即時間;


2、Web伺服器判定請求內容是靜態還是動態內容的時間;


3、Web伺服器轉發請求給應用伺服器的時間;


4、應用伺服器處理(解釋)動態內容所需的時間;


5、Web伺服器返回Web內容給瀏覽器的響應時間;


6、Web伺服器接收來自瀏覽器請求的處理性能;


7、Web訪問請求數據在網路上傳輸的時間:包括從瀏覽器到伺服器,和從伺服器到瀏覽器兩部分;


8、瀏覽器本地計算和渲染Web內容的時間,即接收內容後展現內容的時間。


上面8項很容易理解,也很直接,其實還有以下幾項也是關乎Web
頁面訪問速度體驗的因素,你可以思考下是否如此?或者說是否會影響到頁面訪問性能。


§Web伺服器執行安全策略檢查的時間,或者說性能;


§Web伺服器讀取日誌文件、寫日誌內容、關閉對日誌文件訪問的時間,先讀後寫再關閉,這三步中的讀與寫又涉及到磁碟訪問性能因素;


§同時與Web伺服器連接會話的客戶端數量大小,即並發訪問量多大。


我們可以將上面的影響因素抽像出來,那麼就是:


1、Web伺服器磁碟性能;


2、Web伺服器與應用伺服器交互的性能;


3、應用伺服器處理動態內容的性能,或者說動態內容應用處理性能;


4、客戶端與Web伺服器的連接速度,即網路傳輸性能;


5、Web瀏覽器解釋和渲染Web內容的性能;


6、Web訪問並發性能。


反映到我們進行性能優化,可以入手的角度就有:


1、增加帶寬,包括伺服器和客戶端兩邊的Internet連接帶寬;


2、加快動態內容的處理性能;


3、盡可能多地使用靜態內容,這樣Web伺服器就可以無需請求應用伺服器,直接將Web內容發給瀏覽器端,這里可以入手的方案又有:


動態內容緩存


動態內容靜態化


多台伺服器負載均衡同時處理大量的並發訪問;


提升伺服器磁碟訪問性能,也即通常所說的I/O性能;


減少網頁中的HTTP請求數;


更換更好性能的Web伺服器;


合理部署伺服器,在離客戶端更近的地方部署伺服器,已經證明可以明顯地提升訪問性能。


二、性能優化實踐


經過前面小節的簡要分析,相信你對優化Web伺服器有一定的思路了,你可以從硬體層面、軟體層面、Web代碼三個層面去優化。


下面我們結合一個具體的實例來實踐一回,本文所舉例是一個小型的Web
站點,部分數據系假設,如有類同,純屬巧合,僅起拋磚引玉之用。在實際工作中,如果碰到大站點,你可以參考此處的分析,修改優化方案。


1.站點簡介


一個社區論壇站點,採用Discuz!論壇程序構建,該程序採用主流的PHP+MySQL組成。


網站目前有近5萬注冊用戶,絕大多數是國內的用戶,活躍用戶數在一半左右,每天平均PV在15~20萬,獨立訪問IP數在8000
左右。


2.Web伺服器性能優化需求


網站現部署在國外的伺服器,租用虛擬主機來運營,因為訪問量比較大,所以經常會收到虛擬主機服務商的流量很大的通知,要求控制下訪問量。


另外,虛擬主機的伺服器在美國,沒有在國內租用虛擬主機的原因是國內網站在備案方面非常繁瑣,在網站一開始運營時數據量和訪問量都比較小,所以對性能要求不高,數據量小,所以伺服器在查詢處理數據時速度比較快,也讓人感覺訪問速度不慢,現在隨著數據量和訪問量的不斷上升,訪問速度已明顯下降,到了需要改善訪問性能的時候了。


基於目前該社區網站的情況,提出的優化需求是,國內訪問速度需要提升一倍,目前首頁載入時間需要40秒左右,希望優化後能在20
秒以內將首頁載入完成。


另外提出網站數據能夠每天自動備份一次,備份數據保留一個月的,以便隨時恢復。


上述兩點需求,其中第一條才是性能優化需求,第二條是額外的需求了。


3.性能優化方案


根據其網站的現狀和優化需求,結合自己的經驗,加上谷歌的搜索,同時與網站主不斷確認溝通,最終得到以下性能優化方案:


由虛擬主機部署改為獨立伺服器部署


虛擬主機受限比較多,無法自己自定義配置Web伺服器,無法配置PHP
動態緩存,而且獨立伺服器可以獨享內存、處理器資源,不再受虛擬主機商對每個虛擬主機用戶的內存和處理器資源佔用限制。處理器資源和內存資源,對接受更多並發訪問有直接性能提升效果。


獨立伺服器,我們選用Linode2048型號,2G內存,4核處理器(Linode所有VPS都是四核處理器),80G硬碟空間,800G
網路流量。


由Windows操作系統改為Linux操作系統


網站使用的是PHP+MySQL程序,PHP在Windows下的性能,受限於IIS需要通過ISAPI形式調用PHP,所以性能不如
Linux下Apache直接通過PHP模塊解釋PHP,更不如Nginx與PHP-FPM
的性能,既然使用了獨立伺服器,操作系統也可以自己確定,Linux系統我們選用了熟悉的UbuntuLinuxServer10.04(一年前還沒有
12.04),^-^。


Web伺服器採用Nginx,而不使用Apache


選用Nginx而不用Apache的原因非常直接和乾脆,因為站點里有很多靜態的附件文件,在處理靜態內容上,Nginx性能是Apache
的差不多10倍。


在PHP解釋和偽靜態規則方面,Apache要比Nginx強,但這不影響我們放棄它,為緩解這一點,我們在後面對PHP
進行了動態緩存。


對PHP查詢進行動態緩存,使用eAccelerator這個加速器


PHP加速器是一個為了提高PHP執行效率,從而緩存起PHP的操作碼,這樣PHP後面執行就不用解析轉換了,可以直接調用PHP
操作碼,這樣速度上就提高了不少。


eAccelerator是一個開源PHP加速器,優化和動態內容緩存,提高了PHP腳本的緩存性能,使得PHP
腳本在編譯的狀態下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使得的PHP程序代碼執效率能提高1-10
倍,這個加速還是非常明顯的。


具體地,我們計劃對eAccelerator進行以下設置優化:


§緩存使用物理內存來進行,不使用磁碟來緩存。我們知道內存的讀寫性能是硬碟的N倍,所以在內存資源可以安排情況下,強烈建議使用內存來保存
eAccelerator的緩存內容。


§緩存大小設置為32MB,這個值是操作系統默認支持最大的緩存容量。雖然可以通過修改配置文件來加大這個值,但我們覺得沒有必要,所以就放棄了。


Nginx性能優化


選用了Nginx,雖然它的性能很好,但我們仍然需要對它進行性能優化,在這個案例中,我們做了以下優化:


§使用8個進程,每個進程大約需要20M內存消耗,這里一共使用了150M左右的內存。


§充分使用主伺服器的CPU內核:四核,使用CPU粘性配置選項(worker_cpu_affinity),每核處理器分配兩個進程。


§開啟gzip壓縮功能:gzip壓縮對JS,CSS,XML壓縮效果非常好,能壓縮一半,即減少一倍的傳輸時間;對圖片文件,JPG
已經壓縮過的,它的壓縮性能要少一些。


§圖片本地緩存1天:網站上的圖片很多,通常一張圖片上傳後,不會頻繁的修改,只會頻繁的訪問,所以將圖片放在Nginx
緩存里,可以減少伺服器訪問載入次數,提升訪問速度。


§JS、CSS文件本地緩存7
天:這兩種網頁文件,平時都不會去修改它,將它緩存起來,可以減少載入次數,提升訪問速度。為什麼這兩種文件不和圖片一起設置緩存有效期,是考慮了不同文件的修改頻率不一樣。


§Nginx日誌每天切割一次:這個優化項能大大減小Nginx日誌文件的大小,經過一周的查看,每天的日誌文件是50M
左右,如果不是每天切割,用月切割,那一個月的日誌文件就是幾個G,要Web
伺服器在內存里載入這么大的文件,系統本身內存不夠用,就自然會用到磁碟來緩存,這就影響性能。每天50M左右,在內存上完全可以順利載入,這樣Nginx
在處理訪問時,可以快速的保存訪問日誌。


經過上述幾個優化項目,Nginx這邊一共需要佔用200M左右內存資源。


對PHPCGI進程性能進行優化


Nginx沒有PHP模塊,所以它對PHP的支持是通過PHP-FPM來實現的,PHP-FPM
是跑進程來處理並發請求,在這個案例中,我們配置了20個進程,每個進程差不多佔用20M左右內存資源,一共是400M左右。


同時,PHP-FPM與Nginx交互機制,選用LinuxSocket模式而不是TCP協議埠,Socks是系統級處理模式,socks
也就是一個文件連接,而TCP協議埠,需要經過網路協議處理,性能不如前者,所以我們選擇了前者。


MySQL資料庫性能優化


因為網站主程序是選用他人開發的開源程序,所以對資料庫查詢的程序優化我們無法處理,只能從MySQL本身尋找突破口。


我們可以想像一下,對於論壇網站,通常看貼、查貼的訪問量要遠大於創建貼子、回復貼子的訪問量,體現在MySQL
資料庫上,就是讀表與查詢表數據的連接處理更多。


因此我們要選擇對讀表、查詢性能更好的存儲引擎,結合以前了解的知識,MySQL預設的MyISAM
引擎就是被設計為適合處理讀頻率遠大於寫頻率的環境,查詢效率相當可觀,而且內存佔用很少,這也與我們租用低內存配置的VPS相符。


具體到MySQL配置參數的優化上,受限於伺服器上內存資源本身有限,就直接採用預設的中型環境配置文件。


內容分發網路應用


站點每天十多萬的訪問,上萬獨立IP
訪問,查看先前的訪問統計,訪問來自國內各個地區,使用多種網路連接訪問進來,為保證來自各網路的用戶訪問速度,同時也減少對網站伺服器的請求,我們採用了CDN
來分發靜態內容,這樣各地的用戶可以就近訪問到已緩存在CDN上的文件,CDN
服務商會在靜態內容第一次訪問時緩存到他們全國各地的伺服器上,當第二次訪問時,用戶實際是沒有連接到網站伺服器上獲取文件的,而是直接從CDN
伺服器上獲取,可以明顯的提升網站性能。


以上就是小編今天為大家分享的關於Web伺服器性能和站點訪問性能該如何優化的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端相關知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利!


❷ 靜態IP在架設WEB伺服器的問題

你有固定外網IP了就不用花生殼了,你直接解析你的域名到你的外網IP上就可以的,然後IIS再綁定一下,你就可以用域名訪問你的網站了

❸ 常用的web伺服器軟體有哪些

1.IIS

IIS是英文Internet Information Server的縮寫,譯成中文就是"Internet信息服務"的意思。它是微軟公司主推的伺服器,最新的版本是Windows2008裡麵包含的IIS 7,IIS與Window Server完全集成在一起,因而用戶能夠利用Windows Server和NTFS(NT File System,NT的文件系統)內置的安全特性,建立強大,靈活而安全的Internet和Intranet站點。

2.ApacheApache

ApacheApache在世界上的排名是第一的,它可以運行在幾乎所有廣泛使用的計算機平台上。Apache源於NCSAhttpd伺服器,經過多次修改,不僅簡單、速度快、而且性能穩定,還可以用來做代理伺服器。

3.Nginx

Nginx不僅是一個小巧且高效的HTTP伺服器,也可以做一個高效的負載均衡反向代理,通過它接受用戶的請求並分發到多個Mongrel進程可以極大提高Rails應用的並發能力。

4.Zeus

Zeus是一個運行於Unix下的非常優秀的Web Server,據說性能超過Apache,是效率最高的Web Server之一。

5.Sun

Sun的Java系統Web伺服器也就是以前的Sun ONE Web Server。主要出現在那些運行Sun的Solaris操作系統的關鍵任務級Web伺服器上。它最新的版本號是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多數用戶都選擇了SPARC版本的Solaris操作系統。

❹ IT培訓分享web伺服器類型介紹

web應用的運營都是基於web伺服器的存在才能實現的。今天我們就一起來了解一下,目前比較常見的一些web伺服器都有哪些類型。



1、Tomcat 伺服器


目前非常流行的Tomcat伺服器是Apache-Jarkarta開源項目中的一個子項目,是一個小型、輕量級的支持JSP和Servlet 技術的Web伺服器,也是初學者學習開發JSP應用的選。


2、Resin 伺服器


Resin是Caucho公司的產品,是一個非常流行的支持Servlet和JSP的伺服器,速度非常快。Resin本身包含了一個支持HTML的Web伺服器,這使它不僅可以顯示動態內容,而且顯示靜態內容的能力也毫不遜色,因此許多網站都是使用Resin伺服器構建


3、JBoss伺服器


JBoss是一個種遵從JavaEE規范的、開放源代碼的、純Java的EJB伺服器,對於J2EE有很好的支持。JBoss採用JML API實現軟體模塊的集成與管理,其核心服務又是提供EJB伺服器,不包含Servlet和JSP的Web容器,不過它可以和Tomcat完美結合


4、WebSphere 伺服器


WebSphere是IBM公司的產品,可進一步細分為 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基於Java 的應用環境,可以運行於 Sun Solaris、Windows NT 等多種操作系統平台,用於建立、部署和管理Internet和Intranet Web應用程序。


5、WebLogic 伺服器


WebLogic 是BEA公司的產品(現在已經被Oracle收購),可進一步細分為 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特別強大。WebLogic 支持企業級的、多層次的和完全分布式的Web應用,並且伺服器的配置簡單、界面友好。IT培訓http://www.kmbdqn.com/認為對於那些正在尋求能夠提供Java平台所擁有的一切應用伺服器的用戶來說,WebLogic是一個十分理想的選擇。


❺ web伺服器工作原理

Step1:用戶在地址欄輸入一個網址,然後點擊回車鍵;
Step2:瀏覽器與伺服器建立TCP連接;
Step3:瀏覽器將用戶的事件按照HTTP協議要求的格式打包成數據包,這個過程的本質就是在待發送緩沖區中有這一段HTTP協議格式的位元組流;
Step4:瀏覽器確認伺服器可寫,將該數據包推入Internet中,最終,該包被遞交到服務端;
Step5:伺服器在接收到該數據包後,以同樣的格式進行解析,獲取客戶端的意圖;
Step6:在獲取了客戶端的意圖之後,伺服器進行分類處理,或是提供某一文件,或是處理相關數據;
Step7:將處理結果裝入緩沖區,或者文檔,或是其他內容;
Step8:伺服器將按照HTTP協議格式,將Step7中的數據進行打包;
Step9:伺服器確定對端可寫,將數據包推入Internet,該包經過網路處理,最終返回至客戶端;
Step10:客戶端拿到包之後,以HTTP協議格式進行解包,然後解析數據;
Step11:客戶端處理相關數據,並且展示在頁面之上。

以上這11步,就是web伺服器最基本的工作原理。通過梳理,我們不難發現,這就是一個簡單的網路通信過程。換句話說,就是一個簡單的發送數據、接受數據、處理數據的過程。更高級的web伺服器,無非也就是將上述的三個基礎內容劃分得更加詳細一點而已。

❻ web伺服器有哪些

目前主流web伺服器有三個:apache、IIS、nginx。
其中apache是開源的老牌伺服器,多用於傳統業務,其優點是系統穩定,擴展模塊豐富,各種特性支持完整,並且跨平台。
IIS是微軟主力打造的web伺服器,目前作為Windows系統組件一部分,和微軟上層web開發(asp.net)應用介面緊密。
nginx是開源的後起之秀,是俄羅斯開發的一款用於高並發服務的web伺服器,主要應用於高並發網站、靜態伺服器、下載伺服器等,其優點是性能更高,支持負載均衡,反向代理。
國產web伺服器主要有:
Tengine:是淘寶開發團隊基於nginx修改的,優化了資源請求的web伺服器,其特點繼承nginx,並針對資源請求做了優化。
數蠶web伺服器:是數蠶科技基於c++的Linux下的web伺服器,主要用於靜態頁面和簡單的計算型服務網站。其特點是支持高並發,支持多進程,c++/c介面良好,支持直接基於C++模板開發。

❼ 靜態IP如何設置才能做WEB伺服器

1。下一個花生殼映射。
2。在交換機上進行NAT(地址轉換)設置。

❽ 基於linux的web伺服器是什麼

apache、nginx都是基於linux的web伺服器
可以用護衛神主機大師一鍵安裝上,並在線開設網站