国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

入門系列之在Nginx配置Gzip

waltr / 3515人閱讀

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

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

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

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

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

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

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

必備條件

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

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

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

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

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

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

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

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

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

讓我們以相同的方式創(chuàng)建一些測(cè)試文件:一個(gè)jpg圖像文件,一個(gè)css樣式表和一個(gè)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如何對(duì)剛剛創(chuàng)建的文件進(jìn)行壓縮。

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

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

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

作為響應(yīng),您應(yīng)該看到幾個(gè)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ā)送此文件。這是因?yàn)樵赨buntu 16.04上,Nginx的 gzip在安裝后使用默認(rèn)設(shè)置自動(dòng)啟用了壓縮。

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

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沒有輸出,這意味著文件是在沒有壓縮的情況下提供。

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

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配置,請(qǐng)使用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,但使用#注釋符號(hào)注釋了幾個(gè)其他設(shè)置。我們將對(duì)此部分進(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)閉文件以退出。

要啟用新配置,請(qǐng)重新加載Nginx。

sudo systemctl reload nginx

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

第四步、驗(yàn)證新配置

我們可以像在第2步中那樣測(cè)試它,方法是使用curl每個(gè)測(cè)試文件并檢查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壓縮,是很容易的一件事,而且能帶來不錯(cuò)的提,。不僅帶寬有限的訪問者會(huì)更快地收到該網(wǎng)站,而且Google也會(huì)對(duì)網(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ù)庫(kù)

MySQL 8.0 版本功能變更介紹

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40032.html

相關(guān)文章

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

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

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

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

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

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

    netmou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<