1. <th id="6wyyy"><address id="6wyyy"></address></th>
        <th id="6wyyy"><video id="6wyyy"></video></th>
        <th id="6wyyy"><address id="6wyyy"></address></th>

            1. <strike id="6wyyy"></strike>

              开心彩票网开心彩票网官网开心彩票网网址开心彩票网注册开心彩票网app开心彩票网平台开心彩票网邀请码开心彩票网网登录开心彩票网开户开心彩票网手机版开心彩票网app下载开心彩票网ios开心彩票网可靠吗
              網站地圖 原創論文網,覆蓋經濟,法律,醫學,建筑,藝術等800余專業,提供60萬篇論文資料免費參考
              主要服務:論文發表、論文修改服務,覆蓋專業有:經濟、法律、體育、建筑、土木、管理、英語、藝術、計算機、生物、通訊、社會、文學、農業、企業

              網站提速的技術手段探析

              來源:原創論文網 添加時間:2017-04-10
              摘要
                
                一般網站的技術架構:通過負載均衡設備接入外網請求,執行 SSL 解密,根據域名或 URL 分發請求;以 Nginx 為負載分發服務器;靜態資源與動態程序分開部署。
                
                順應這一架構層次,本文從域名規劃、代理服務器端緩存、前端編譯、頁面制作四個層次闡述網站提速的技術手段。
                
                一、域名規劃
                
                瀏覽器有一個限制:針對一個遠程主機(域名),同時存在的并發請求數不能超出上限。換言之,將文件部署在不同的服務器(域名)上,將增強瀏覽器的并發能力。
                
                以電商網站為例,規劃其域名:
                
                uwww:網站首頁。
                
                unews:二級頁面。
                
                uapp:移動 App 的服務端地址。
                
                uweixin:微信公眾號的服務端地址。
                
                updt-img-1:商品圖片服務器。為充分利用瀏覽器
                
                并發獲取圖片的能力,建立 5 個圖片服務器域名,即 pdt-img-2、pdt-img-3、pdt-img-4、pdt-img-5.
                
                二、 代理緩存
                
                當使用 Nginx 作為 Web 請求和移動 App 請求的負載分發器時,在 Nginx 上配置代理緩存策略,定義負載分發器與應用服務器 / 靜態資源服務器之間的緩存規則,這樣在緩存過期之前負載分發器就不用從應用服務器 / 靜態資源服務器獲取文件。
                
                proxy_cache_path data/cache/cache_my levels=1:2 keys_
                
                zone=cache_my:200m inactive=1d max_size=1g;
                
                server {
                
                location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
                
                include proxy.conf;
                
                proxy_cache cache_my;
                
                proxy_pass http://my_servers;
                
                }
                
                }
                
                當新應用發布時,要注意清除緩存目錄。
                
                三、動靜分離 / 瀏覽器緩存 / 文件壓縮 / 圖片合并
                
                減少靜態文件對應用服務器的影響、請求次數、網絡流量、連接次數,這些是前端開發的標準要求和強制要求。如果拿服務端代碼編譯來類比,就相當于對前端開發的成果文件(包括 HTML、CSS、JS、圖片等)進行一次檢查和再處理,這正是“前端編譯”的觀點。FIS3 是百度的前端編譯解決方案,可一次性達到上述四個目的。FIS3 的統一配置文件全方位提速網站的技術手段3.1 實施動靜分離
                
                在一個高并發的場景中,瀏覽器并發獲取資源,無疑將加速頁面的顯示,增強用戶體驗,但這又對服務器應對并發訪問的能力提出更高要求。根據文件類型,在服務端針對動、靜文件實施分開部署,動態文件部署在應用服務器,靜態文件部署在靜態資源服務器,正是為了降低應用服務器在 I/O方面的消耗,從整體上增強服務端響應文件請求的能力。大型網站部署 CDN 的目的之一,便是分散部署靜態資源文件,結合智能 DNS,就近返回靜態資源文件。
                
                在 fis-conf.js 中配置規則,將 *.js、*.css、*.png 文件發布到另一個絕對路徑下,該路徑將來可以是靜態資源服務器上的任意路徑。
                
                fis.match(‘*.{png,js,css}', {release: '/static/$0'
                
                });
                
                3.2 充分利用瀏覽器緩存
                
                瀏覽器緩存的工作原理是,與服務器之間建立一種契約,服務器依據文件修改時間來決定是否需要向瀏覽器返回該文件。瀏覽器每次請求遠程文件時,從自身緩存中提取該文件的最后修改時間,放在 If-Modified-Since 頭中隨請求發出;服務器取出 If-Modified-Since 頭數據,比對最新的文件修改時間,如相同,說明文件未曾修改,返回 304 狀態代碼,如不同,則正常返回文件。在這種工作模式下,即使文件沒修改,瀏覽器也要發出一次請求。改進方案是,服務器告知瀏覽器文件將永不過期,服務器將能夠代表文件是否變動的標識(最后修改時間、內容哈希)作為文件 URI 的一部分,一旦文件內容改變,URI 隨之變化,這樣瀏覽器根據文件 URI 便能判斷是否需要下載新的文件。
                
                應用系統的靜態資源文件、商品圖片,均適用這一技巧。
                
                fis.match('*.{js,css,png}', {useHash: true});
                
                3.3 實施文件壓縮
                
                文件 GZIP 壓縮是主流的 Web 服務器都支持的功能,其目的是減少網絡傳輸的字節數,因為相對壓縮和解壓的運算能力的消耗,網絡傳輸能力無疑是更大的制約。
                
                fis.match('*.js', {//fis-optimizer-uglify-js 插件進行壓縮,已內置optimizer: fis.plugin('uglify-js’)});fis.match(‘*.css', {//fis-optimizer-clean-css 插件進行壓縮,已內置optimizer: fis.plugin('clean-css’)});fis.match(‘*.png', {//fis-optimizer-png-compressor 插 件進行壓縮,已內置optimizer: fis.plugin('png-compressor’)});
                
                3.4 實施圖片合并
                
                一次 Web 請求,需要經歷域名解析、建立連接、傳輸內容三個階段,其中建立連接比較耗時,因此瀏覽器一般具有保持一段時間的長連接以供復用的機制。服務端將多張圖片合并成一個文件,正是一種主動減少連接次數的機制。
                
                // 啟用 fis-spriter-csssprites 插件fis.match(‘::package', {spriter: fis.plugin('csssprites’)})// 對 CSS 進行圖片合并fis.match(‘*.css', {// 給匹配到的文件分配屬性useSprite: true});四、域名預解析 / 網站預連接 / 資源預加載根據大型網站的監測結果,在一次資源請求的過程中,大量時間耗費在建立連接方面;對于初次請求一個新網站來說,域名解析也需要耗費一段時間;對于一次請求大文件的過程來說,需要耗費的時間相對更長,而在這段相對更長的時間內,用戶只能等待。針對域名解析、建立連接、資源文件加載這三個問題,分別開辟一個提前量,在用戶執行其它操作的間歇期,并行執行域名預解析、網站預連接、資源預加載。例如:
                
                域名預解析:
                
                <link rel=“dns-prefetch” href=“//example.com”>
                
                網站預連接:
                
                <link rel=“preconnect” href=“http://example.com”>
                
                資源預加載:
                
                <link rel=“prefetch” href=“image.png”>
                
                <link rel=“subresource” href=“style.css”>
                
                <link rel=“prerender” href=“http://example.com”>
                
                <link rel=“preload” href=“image.png”>
                
                目前并不是所有的瀏覽器都支持以上聲明,但是將有越來越多的瀏覽器支持。
              重要提示:轉載本站信息須注明來源:原創論文網,具體權責及聲明請參閱網站聲明。
              閱讀提示:請自行判斷信息的真實性及觀點的正誤,本站概不負責。
              开心彩票网{{转码主词}官网{{转码主词}网址