成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

入門系列之在Nginx配置Gzip

waltr / 3525人閱讀

摘要:結(jié)果應(yīng)該與以前略有不同響應(yīng)頭沒有輸出,這意味著文件是在沒有壓縮的情況下提供。文件的響應(yīng)頭下一步是將配置支持其他類型文件的壓縮。下一步是檢查配置的更改是否按預(yù)期工作?,F(xiàn)在,只有圖像文件才能保持未壓縮狀態(tài)。

歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~

本文由小鐵匠米蘭的v   發(fā)表于云+社區(qū)專欄
簡介

網(wǎng)站加載的速度取決于瀏覽器必須下載的所有文件的大小。減少要傳輸?shù)奈募拇笮】梢允咕W(wǎng)站不僅加載更快,而且對于那些寬帶是按量計費的人來說也更友好。

gzip是一種流行的數(shù)據(jù)壓縮程序。您可以使用gzip壓縮Nginx實時文件。這些文件在檢索時由支持它的瀏覽器解壓縮,好處是web服務(wù)器和瀏覽器之間傳輸?shù)臄?shù)據(jù)量更小,速度更快。

gzip不一定適用于所有文件的壓縮。例如,文本文件壓縮得非常好,通常會縮小兩倍以上。另一方面,諸如JPEG或PNG文件之類的圖像已經(jīng)按其性質(zhì)進(jìn)行壓縮,使用gzip壓縮很難有好的壓縮效果或者甚至沒有效果。壓縮文件會占用服務(wù)器資源,因此最好只壓縮那些壓縮效果好的文件。

在本指南中,我們將討論如何配置安裝在Ubuntu 16.04服務(wù)器上的Nginx,以利用gzip壓縮,來減少發(fā)送給網(wǎng)站訪問者的文件的大小。

必備條件

要學(xué)習(xí)本教程,您需要:

一個已安裝Nginx的Ubuntu 16.04服務(wù)器,沒有服務(wù)器的同學(xué)可以在這個頁面購買。 關(guān)于Nginx搭建,可以參考騰訊云開發(fā)者實驗室的這個教程:https://cloud.tencent.com/dev...

第一步、創(chuàng)建測試文件

這一步中,我們將在默認(rèn)的Nginx目錄中創(chuàng)建幾個測試文件來進(jìn)行測試gzip的壓縮效果。

Nginx不會分析文件內(nèi)容,他只分析文件后綴,所以,它只是查找文件擴(kuò)展名以確定其MIME類型,這樣nginx就會對不同的文件作出不同的壓縮處理。

因為只是測試,所以測試文件的內(nèi)容無關(guān)緊要。通過適當(dāng)?shù)母奈募?,我們可以欺騙Nginx,讓Nginx認(rèn)為這個文件是圖像或者是js腳本。

在我們的配置中,Nginx不會壓縮非常小的文件,因此我們將創(chuàng)建大小恰好為1KB的測試文件。這將讓我們驗證Nginx是否使用壓縮,壓縮一種類型的文件而不是其他類型的文件。

使用創(chuàng)建truncate在默認(rèn)Nginx目錄中命名的1 KB文件test.html。擴(kuò)展名表示它是一個HTML頁面。

sudo truncate -s 1k /var/www/html/test.html

讓我們以相同的方式創(chuàng)建一些測試文件:一個jpg圖像文件,一個css樣式表和一個jsJavaScript文件。

sudo truncate -s 1k /var/www/html/test.jpg
sudo truncate -s 1k /var/www/html/test.css
sudo truncate -s 1k /var/www/html/test.js

下一步是檢查NGIX如何對剛剛創(chuàng)建的文件進(jìn)行壓縮。

第二步、檢查默認(rèn)行為

讓我們檢查名為test.html的HTML文件是否被壓縮。該命令從我們的Nginx服務(wù)器請求一個文件,并指定使用HTTP頭(Accept-Encoding: gzip)來查找gzip壓縮的內(nèi)容。

curl -H "Accept-Encoding: gzip" -I http://localhost/test.html

作為響應(yīng),您應(yīng)該看到幾個HTTP響應(yīng)標(biāo)頭:

Nginx響應(yīng)頭

HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Tue, 19 Jan 2016 20:04:12 GMT
Content-Type: text/html
Last-Modified: Tue, 04 Mar 2014 11:46:45 GMT
Connection: keep-alive
Content-Encoding: gzip

在最后一行中,您可以看到Content-Encoding: gzip。這告訴我們gzip壓縮已用于發(fā)送此文件。這是因為在Ubuntu 16.04上,Nginx的 gzip在安裝后使用默認(rèn)設(shè)置自動啟用了壓縮。

但是,默認(rèn)情況下,Nginx僅壓縮HTML文件。新安裝中的每個其他文件都將以未壓縮的形式提供。要驗證這一點,您可以請求以test.jpg相同方式命名的測試圖像。

curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg

結(jié)果應(yīng)該與以前略有不同:

Nginx響應(yīng)頭

HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Tue, 19 Jan 2016 20:10:34 GMT
Content-Type: image/jpeg
Content-Length: 0
Last-Modified: Tue, 19 Jan 2016 20:06:22 GMT
Connection: keep-alive
ETag: "569e973e-0"
Accept-Ranges: bytes

Content-Encoding: gzip沒有輸出,這意味著文件是在沒有壓縮的情況下提供。

您可以使用測試CSS樣式表重復(fù)測試。

curl -H "Accept-Encoding: gzip" -I http://localhost/test.css

再一次,輸出中沒有提到壓縮。

CSS文件的Nginx響應(yīng)頭

HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Tue, 19 Jan 2016 20:20:33 GMT
Content-Type: text/css
Content-Length: 0
Last-Modified: Tue, 19 Jan 2016 20:20:33 GMT
Connection: keep-alive
ETag: "569e9a91-0"
Accept-Ranges: bytes

下一步是將Nginx配置支持其他類型文件的壓縮。

第三步、配置Nginx的gzip設(shè)置

要更改Nginx的 gzip配置,請使用nano或者其他您喜歡的編輯器,來打開的Nginx主要配置文件。

sudo nano /etc/nginx/nginx.conf

找到gzip設(shè)置部分,如下所示:

. . .
##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
. . .

您可以看到默認(rèn)情況下,指令gzip啟用了壓縮gzip on,但使用#注釋符號注釋了幾個其他設(shè)置。我們將對此部分進(jìn)行一些更改:

通過取消注釋所有注釋行來啟用其他設(shè)置(就是刪除#

添加gzip_min_length 256;指令,告訴Nginx不要壓縮小于256字節(jié)的文件。這是非常小的文件,可以不用壓縮

gzip_types是表示壓縮的文件類型,還可以添加web字體格式、ioc圖標(biāo)和SVG圖像等其他類型文件。

應(yīng)用這些更改后,設(shè)置部分應(yīng)如下所示:

/etc/nginx/nginx.conf

. . .
##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
. . .

保存并關(guān)閉文件以退出。

要啟用新配置,請重新加載Nginx。

sudo systemctl reload nginx

下一步是檢查配置的更改是否按預(yù)期工作。

第四步、驗證新配置

我們可以像在第2步中那樣測試它,方法是使用curl每個測試文件并檢查Content-Encoding: gzip是否有輸出。

curl -H "Accept-Encoding: gzip" -I http://localhost/test.html
curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg
curl -H "Accept-Encoding: gzip" -I http://localhost/test.css
curl -H "Accept-Encoding: gzip" -I http://localhost/test.js

現(xiàn)在,只有test.jpg圖像文件才能保持未壓縮狀態(tài)。在所有其他示例中,您應(yīng)該能夠Content-Encoding: gzip在輸出中找到標(biāo)頭。

如果是這種情況,您已gzip成功在Nginx中配置了壓縮!

結(jié)論

更改Nginx配置來使用gzip壓縮,是很容易的一件事,而且能帶來不錯的提,。不僅帶寬有限的訪問者會更快地收到該網(wǎng)站,而且Google也會對網(wǎng)站加載速度感到滿意。作為現(xiàn)代網(wǎng)絡(luò)和使用的重要組成部分,網(wǎng)站的加載速度越來越受到關(guān)注,這gzip是改進(jìn)它的一大步。


參考文獻(xiàn):《How To Add the gzip Module to Nginx on Ubuntu 16.04》

問答

nginx多域名轉(zhuǎn)發(fā)?

相關(guān)閱讀

如何在CVM上設(shè)置SSH僅作文件傳輸

如何備份你的MySQL數(shù)據(jù)庫

MySQL 8.0 版本功能變更介紹

此文已由作者授權(quán)騰訊云+社區(qū)發(fā)布,原文鏈接:https://cloud.tencent.com/dev...

歡迎大家前往騰訊云+社區(qū)或關(guān)注云加社區(qū)微信公眾號(QcloudCommunity),第一時間獲取更多海量技術(shù)實踐干貨哦~

海量技術(shù)實踐經(jīng)驗,盡在云加社區(qū)!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40032.html

相關(guān)文章

  • 服務(wù)器小白的我,是如何成功將 node+mongodb 項目部署在服務(wù)器上并進(jìn)行性能優(yōu)化的

    摘要:前言本文講解的是做為前端開發(fā)人員,對服務(wù)器的了解還是小白的我,是如何一步步將項目部署在阿里云的服務(wù)器上,并進(jìn)行性能優(yōu)化,達(dá)到頁面秒內(nèi)看到,秒內(nèi)看到首屏內(nèi)容的。搭建的項目是采用了主流的前后端分離思想的,這里只講服務(wù)器環(huán)境搭建與性能優(yōu)化。 showImg(https://segmentfault.com/img/remote/1460000017143281); 前言 本文講解的是:做為前...

    zsy888 評論0 收藏0
  • Nginx配置(入門)

    摘要:是基于的針對打包的倉庫,更新也很及時。假如這里要添加黑名單,那就創(chuàng)建表示禁止,支持通配符和正則。防盜鏈基于防盜鏈配置模塊允許文件鏈出的域名白名單盜鏈返回結(jié)果基于用戶的訪問控制身份驗證可用于一些私密目錄。 系列文章 Nginx的配置(進(jìn)階):https://segmentfault.com/a/11... 安裝 yum源安裝 $ yum install nginx 源碼安裝 咕咕咕 操作...

    Cheriselalala 評論0 收藏0
  • Nginx入門到實戰(zhàn)(2)場景實現(xiàn)篇

    摘要:上一章了解了的基礎(chǔ)理論與配置,這一章將介紹在各種不同場景下的不同使用方法一靜態(tài)資源服務(wù)靜態(tài)資源類型非服務(wù)器動態(tài)運行生成的文件,換句話說,就是可以直接在服務(wù)器上找到對應(yīng)文件的請求瀏覽器端渲染圖片視頻文件,任意下載文件靜態(tài)資源服務(wù)場景什么是例 上一章了解了nginx的基礎(chǔ)理論與配置,這一章將介紹nginx在各種不同場景下的不同使用方法 一、靜態(tài)資源WEB服務(wù) 1.靜態(tài)資源類型 非服務(wù)器動態(tài)...

    netmou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<