⑴ 怎樣使用 nginx 壓縮html
gzip 是在 linux 系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。
在Nginx安裝完成之後,我們可以開啟Gzip壓縮功能,這里Nginx默認只能對text/html類型的文件進行壓縮。
下面的指令為開啟Gzip的指令:
java">#啟用gzip壓縮功能
gzipon;
#默認值是1.1,就是說對HTTP/1.1協議的請求才會進行gzip壓縮
gzip_http_version1.1;
gzip_varyon;
#壓縮級別,1壓縮比最小處理速度最快,9壓縮比最大但處理最慢,同時也最消耗CPU,一般設置為3就可以了
gzip_comp_level6;
#nginx做前端代理時啟用該選項,表示無論後端伺服器的headers頭返回什麼信息,都無條件啟用壓縮
gzip_proxiedany;
#什麼類型的頁面或文檔啟用壓縮
gzip_typestext/plaintext/cssapplication/jsonapplication/x-javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascriptimage/jpegimage/gifimage/png;
#最小壓縮的頁面,如果頁面過於小,可能會越壓越大,這里規定大於1K的頁面才啟用壓縮
gzip_min_length1024;
#設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流
gzip_buffers168k;
#禁用IE6的gzip壓縮
gzip_disable"MSIE[1-6].(?!.*SV1)";
相關配置說明:
1、在gzip_http_version的默認值是1.1,就是說對HTTP/1.1協議的請求才會進行gzip壓縮。
如果使用了proxy_pass進行反向代理,那麼nginx和後端的upstream server之間是用HTTP/1.0協議通信的,如果使用nginx通過反向代理做Cache Server,前端的nginx沒有開啟gzip,且後端的nginx上未設置gzip_http_version為1.0,那麼Cache的url將不會被gzip壓縮。
2、gzip_disable的設置是禁用IE6的gzip壓縮
IE6的某些版本對gzip的壓縮支持不是很好,會造成頁面的假死。對img進行gzip後會造成IE6的假死,把對img的gzip壓縮去掉後就正常了。為了確保其它的IE6版本不出問題,所以加上了gzip_disable配置項。
3、gzip_min_length設置允許壓縮的頁面最小位元組數,頁面位元組數從header頭中的Content-Length中進行獲取。
默認值是0,不管頁面多大都壓縮。建議設置成大於1k的位元組數,小於1k可能會越壓越大。 即: gzip_min_length 1024。
⑵ 伺服器開啟Gzip壓縮功能
在負載均衡中有一個必須要做的事情就是給伺服器開啟Gzip壓縮功能,對用戶請求的頁面進行壓縮處理,以達到節省網路帶寬,提高網站速度的作用。
Gzip是若干文件壓縮程序的簡稱,通常指GNU計劃的實現,此處的Gzip代表的就是GUN ZIP,這也是HTTP1.1協議定義的兩種壓縮方法中最常用的一種壓縮方法,客戶端瀏覽器大都支持這種壓縮格式。
接下來,將介紹Apache、Nginx 如何開啟Gzip壓縮。
Apache開啟Gzip要看查看是否已經開啟mod_deflate模塊,如果沒有則需要先載入,在配置文件httpd.conf中將
前面的#號去掉。另外,如果對Apache的配置文件不太懂的客戶在修改配置文件之前對配置文件進行備份。
開啟模塊後,在httpd.conf配置文件的最下面空白處添加一下內容:
其中DeflateCompressionLevel 的意思是壓縮等級,共分為1-9,9級為最高,不建議使用太高的壓縮比,這樣會對CPU產生太大的負擔。
打開配置文件 nginx.conf找到Gzip on 把前面的注釋符號#去掉即可開啟GZIP服務。然後配置GZIP即可。
下面是一個相對優化不錯的配置。
⑶ 前端性能優化之Gzip
由於我們團隊的前端項目越來越龐大,加之Vue的SPA首屏載入特性,導致系統第一次載入速度越來越緩慢,可能達到幾十秒的程度,所以為了優化用戶性能體驗,我們選擇了開啟Gzip進行文件壓縮,確實達到了顯著的效果。
Gzip原本用戶UNIX系統的文件壓縮,後來逐漸成為Internet最主流的數據壓縮格式。
當用戶訪問我們的web站點時,伺服器就將我們的網頁文件進行壓縮,將壓縮後的文件傳輸到客戶端,對於純文本文件我們可以至少壓縮到原大小的40%,這樣大大提高了傳輸效率,頁面便可更快的載入出來。
由於目前我們項目是使用ngxin來部署前端的,nginx自帶 HttpGzip模塊 , 所以我們直接對 nginx.conf 文件的http配置項進行配置即可。但相對的由於nginx自身處理請求然後壓縮返回,會消耗對應的伺服器內存。
測試效果
我們應盡可能減少對服務端內存的使用,畢竟服務端的資源是十分寶貴的,這里我們仍然使用nginx進行前端部署,我們在客戶端替nginx處理壓縮文件這一步操作,nginx便可直接使用我們壓縮好的文件,下面是一個基於vue-cli配置的前端項目。
這里最好安裝低版本,防止報錯。
這里可以根據大家不同的配置,總之就是將webpack插件進行注冊。
成功運行後,便可以在打包文件中看到.gz結尾的文件了,將打包後的文件上傳到指定的nginx文件夾下。
這里需要nginx對應的插件 http_gzip_static_mole ,之前我是通過yum安裝的nginx,這里似乎不可以,需要手動安裝。這里目錄可以根據大家個人情況而定。
安裝nginx
修改nginx.conf
啟動nginx服務
這里我們雖然服務端js文件夾里只有.gz格式的文件(其他的文件已刪除),但客戶端卻成功讀取了。
無論是服務端與客戶端進行gzip的壓縮,我們都大大縮小了文件體積,給用戶帶來了更好的體驗。
服務端處理gzip優點是只需配置一下即可,無需復雜操作,但缺點是會消耗伺服器內存。
客戶端處理gzip優點是無需伺服器進行文件壓縮,減少伺服器內存消耗,但配置起來相比服務端gzip會稍加繁瑣。
Nginx中文文檔
什麼是GZIP,有什麼優勢,如何開啟GZIP?
vue-cli4 開發項目中開啟gzip壓縮,優化打包體積,提升載入速度
Nginx gzip static靜態壓縮
配置nginx直接使用webpack生成的gz壓縮文件,而不用nginx自己壓縮
⑷ nginx默認文件下載地址
Windows系統下載安裝Nginx以及host文件的介紹
1. Nginx的簡單介紹
Nginx功能豐富,可作為HTTP伺服器,也可作為反向代理伺服器,郵件(IMAP/POP3)代理伺服器。Nginx佔用內存少,並發能力強。
1.1 Nginx的安裝
Nginx下載地址:http://nginx.org/en/download.html
這里選擇了Windows的1.19.4版本
下載完成後解壓壓縮包
接下來測試一下是否能正常運行
雙擊nginx.exe打開或者根目錄輸入cmd打開輸入命令,會發現有個窗口閃一下
1.啟動命令 start nginx
2.重啟命令 nginx -s reload (啟動過才能輸入重啟命令)
3.停止命令 nginx -s stop
1
2
3
1
2
3
nginx啟動後,會多出兩個進程,其中占內存大的為主進程,主要為用戶提供反向代理服務;其中占內存小的為守護進程,是為了主進程意外關閉的。所以在關閉Nginx時需要先結束守護進程才能關閉主進程。
測試是否能正常使用
瀏覽器輸入localhost會出現歡迎界面表示成功。
1.2 Nginx配置文件說明
Nginx伺服器的基礎配置和默認配置都在這里–>打開conf文件夾下的nginx.conf文件
下面簡單說明一下配置文件
########### 每個指令必須有分號結束。##################
user administrator administrators; #配置用戶或者組,默認為nobody nobody。#worker_processes 2; #允許生成的進程數,默認為1
#pid /nginx/pid/nginx.pid; #指定nginx進程運行文件存放地址
error_log log/error.log debug; #制定日誌路徑,級別。這個設置可以放入全局塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg
events {
accept_mutex on; #設置網路連接序列化,防止驚群現象發生,默認為on
multi_accept on; #設置一個進程是否同時接受多個網路連接,默認為off
#use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大連接數,默認為512
}
http {
include mime.types; #文件擴展名與文件類型映射表
default_type application/octet-stream; #默認文件類型,默認為text/plain
#access_log off; #取消服務日誌
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式
access_log log/access.log myFormat; #combined為日誌格式的默認值
sendfile on; #允許sendfile方式傳輸文件,默認為off,可以在http塊,server塊,location塊。
sendfile_max_chunk 100k; #每個進程每次調用傳輸數量不能大於設定的值,默認為0,即不設上限。
keepalive_timeout 65; #連接超時時間,默認為75s,可以在http,server,location塊。
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #熱備
}
error_page 404 https://www..com; #錯誤頁
server {
keepalive_requests 120; #單連接請求上限次數。
listen 4545; #監聽埠
server_name 127.0.0.1; #監聽地址
location ~*^.+$ { #請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫。
#root path; #根目錄
#index vv.txt; #設置默認頁
proxy_pass http://mysvr; #請求轉向mysvr 定義的伺服器列表
deny 127.0.0.1; #拒絕的ip
allow 172.18.5.54; #允許的ip
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
http{}塊下可以包含多個server{}塊,一個反向代理就是一個server
server {
#監聽的埠號
listen 80;
#監聽的域名
server_name localhost;
#進行反向代理配置
location / {
#root關鍵字:代表磁碟地址
root html; #默認為跟目錄下的html文件夾
#index關鍵字:默認的歡迎界面
index index.html index.htm;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.3 自己配置並測試
接下來自己寫一個配置圖片的代理伺服器測試一下
首先在F盤創建一個文件夾img,其中保存一張圖片 hello.png
在http{}塊下配置圖片的代理伺服器
server {
listen 8080;
server_name 127.0.0.1;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
之後瀏覽器輸入http://127.0.0.1:8080/hello.png 就可以顯示這張圖片。
2. hosts文件的簡單介紹
hosts文件是操作系統為了方便開發,在本地形成的域名與IP的映射文件,該文件只對本機有效。
位置:C:\Windows\System32\drivers\etc\hosts
示例:
#IP 域名 的映射關系,表示在瀏覽器輸入hello.word.com就相當於輸入例如127.0.0.1
127.0.0.1 hello.word.com
#可以配置多條映射
127.0.0.1 www.img.com
1
2
3
4
1
2
3
4
3. hosts文件和Nginx的配合使用實現域名的代理
3.1 如果想要通過http://hello.world.com域名訪問localhost:8080的伺服器
編輯hosts文件
127.0.0.1 hello.world.com
1
1
編輯nginx.conf配置文件
server {
listen 8080;
server_name hello.world.com;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
瀏覽器輸入hello.world.com:8080/hello.png測試
3.2 如果想要通過http://hello.world.com域名訪問真實伺服器地址http://localhost:8090
編輯hosts文件
127.0.0.1 hello.world.com
1
1
編輯nginx.conf配置文件
server {
listen 80;
server_name hello.world.com;
location / {
#代理真實的伺服器地址
proxy_pass http://localhost:8090;
}
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
啟動提前寫好的埠號為8090的項目,啟動Nginx
瀏覽器輸入http://hello.world.com/,以為80埠可以省略,所以這里相當於http://hello.world.com:80/地址取訪問真實的http://localhost:8090地址
打開CSDN APP,看更多技術內容
配置Nginx反向代理時配置hosts文件不起作用
原因:設備上的 hosts 出問題,電腦無法正常解析 解決方法:在網上找一個可用的hosts文件進行替換 hosts文件在/private/etc/hosts路徑中,輸入sudo vi /private/etc/hosts修改文件,將配置信息添加進去即可。 ...
繼續訪問
運維:nginx常用命令與問題解決(windows版)+ 安裝stream模塊
cmd 進入Nginx解壓目錄 執行以下命令 驗證配置是否正確: nginx -t 查看Nginx的版本號: nginx -V 啟動Nginx: start nginx 快速停止或關閉Nginx: nginx -s stop 正常停止或關閉 Nginx:nginx -s quit 配置文件修改重裝載命令: nginx -s reload 測試nginx配置文件是否正確 nginx -t -c /nginx-1.20.1/conf/nginx.conf 測試nginx配置文件是否正確(簡寫) n
繼續訪問
最新發布 Windows中Nginx下載、安裝、配置
Nginx (engine x) 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru 站點(俄文:Рамблер)開發的.它也是一種輕量級的Web伺服器,可以作為獨立的伺服器部署網站(類似Tomcat)。它高性能和低消耗內存的結構受到很多大公司青睞,如淘寶網站架設。先下載直接去官網nginx.org分別有Linux和Windows兩個版本。
繼續訪問
nginx-windows系統下的安裝及使用
目錄 一、Nginx簡介 二、安裝部署 三、優化配置 一、Nginx簡介 Nginx (engine x) 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru 站點(俄文:Рамблер)開發的. 它也是一種輕量級的Web伺服器,可以作為獨立的伺服器部署網站(類似Tomcat)。...
繼續訪問
利用hosts文件修改域名映射實現Nignx反向代理
windos下查看dns地址 ipconfig -all 域名解析的原理 域名解析是首先會在本機的localhost中查找域名解析規則,如果沒有會通過本地配置的域名伺服器地址進行域名解析。 下面我們通過配置localhost進行域名訪問。 第一步:路徑:C:\Windows\System32\drivers\etc ...
繼續訪問
windows下載安裝Nginx
安裝步驟 1、下載Nginx 下載地址:http://nginx.org/en/download.html (Nginx官網); 2、下載之後,解壓到指定的目錄,就可以看到以下的目錄 3、控制台(CMD)切換到Nginx目錄下,輸入start nginx ,然後在瀏覽器頁面輸入localhost,出現如下界面則表示安裝成功。默認監聽80埠號。 4、nginx命令介紹 (1)start nginx 開啟nginx服務 (2)nginx.exe -s stop 關閉nginx服務,快速停止nginx,
繼續訪問
【Nginx】Nginx在Windows、Linux環境下的下載安裝詳細步驟
文章目錄Nginx下載安裝Nginx-windows安裝下載安裝啟動Nginx-Linux安裝下載准備安裝啟動 Nginx下載安裝 Nginx跨平台,在windows、Linux都可以安裝 Nginx-windows安裝 下載 官網下載:nginx: download 下載穩定版,不要下載測試版 安裝 下載得到zip壓縮包,解壓、解壓到任何地方都行, 解壓後的目錄: conf 配置文件,我們常用的就是conf中的配置文件 contrib 存放工具組件文件 docs 存放文檔 documents
繼續訪問
nginx和hosts配置
nginx.conf(nginx/conf/nginx.conf) server { listen 80; //網路路徑 server_name image.jt.com; location / { //本地路徑 root D:/images; } } hosts(C:/Windows/System32/drivers/etc/hosts) //圖片伺服器配置 127.0.0.1 image.jt.com //前端伺服器配置 127.0.0.1 www.
繼續訪問
本地host,nginx配置
本地host, 路徑: c/windows/system32/drivers/etc/host ip 域名 127.0.0.1 image.jt.com 127.0.0.1 manage.jt.com 127.0.0.1 web.jt.com 配置文件 根目錄/coof/nginx.conf http{ server { # 埠 listten:80; # 域名 server_name www..com; #文件位置 localhost / { #根目
繼續訪問
nginx config配置中內置變數host的坑
我們在配置nginx的配置時,一般是這樣的。舉例: server { listen 80; server_name mirrors.maqian.work; location / { proxy_pass http://mirrors.aliyun.com; proxy_redirect off; proxy_set_header Host $proxy_host; proxy_set_header X-Rea
繼續訪問
Windows下載安裝Nginx
一、介紹 Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。 Nginx是一款輕量級的Web伺服器/反向代理伺服器以及電子郵件代理伺服器,並在一個BSD-like協議下發行。由俄羅斯的程序設計師lgor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler使用。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好。 Nginx相較於Apache\lighttpd具有佔有內存少,穩定性高等
繼續訪問
host文件在哪裡_3:基本配置文件詳解
上文中,我們已經順利的完成了Nginx的安裝,從本文開始我們真正的進入到Nginx的配置和使用。我們通過rpm命令可以查看Nginx安裝之後文件都放在了哪裡(rpm 是linux的rpm包管理工具),命令如下:rpm -ql nginx我們可以看到,Nginx的主要配置都在/etc/nginx這個目錄下,usr/share是我們的服務目錄,前面的文章提到,Nginx是模塊化的設計,在配置這塊這個特...
繼續訪問
Nginx下載與安裝-Win系統
Nginx入門: 1、在Windows系統下,下載、安裝、啟動Nginx
繼續訪問
Windows安裝nginx並配置埠轉發
Windows安裝nginx;nginx配置埠轉發
繼續訪問
Nginx_關於Ngxin和hosts
瀏覽器訪問的URL會根據兩種方式去進行域名解析: 1、hosts 2、DNS 如果本地配置了hosts就不會去訪問DNS了 舉例: 訪問jisumall.com這個域名,會先到hosts中去地址解析,hosts中有配置的話,那麼根據hosts中的配置進行解析。 hosts配置文件 我們這里hosts文件有配置,所以這個域名訪問的地址會被轉發到本地的127.0.0.1(默認80埠)。(如果hosts沒有配置,那麼就會到網上的DNS伺服器上面找域名)。 由於本地開啟了nginx,本地的80埠被nginx接
繼續訪問
熱門推薦 nginx配置:server_name的作用
nginx的server_name最新詳解
繼續訪問
Windows 11下安裝 nginx
Windows 安裝 nginx!!!
繼續訪問
nginx快速開始
windows環境下使用nginx 1、下載 http://nginx.org/en/download.html 下載穩定版本,以nginx/Windows-1.12.2為例,直接下載 nginx-1.12.2.zip 2、解壓 下載後解壓,目錄如下: 3、啟動nginx 有很多種方法啟動nginx (1)直接雙擊nginx.exe,雙擊後一個黑色的彈窗一閃而過 (2)打開cmd...
繼續訪問
Windows系統下載安裝Nginx
下載 下載地址:http://nginx.org/en/download.html 本次下載的是1.18版本 下載後是一個壓縮包。 安裝 將壓縮包解壓即可。 啟動 第一種:雙擊nginx.exe,小黑框一閃而過。 第二種:打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe 或者 start nginx ,回車即可 ...
繼續訪問
本地host文件和nginx映射的關系
假設客戶端A--------》瀏覽器url請求域名--------》域名被host解析對應的IP--------》到對應IP的伺服器--------》先被nginx反向代理攔截--------》找到nginx上一樣域名(nginx.conf配置文件中server里的server_name)--------》對應的反向映射地址(nginx.conf配置文件中同左server里的proxy_pass ...
繼續訪問
nginx
windows
⑸ nginx負載均衡時上傳的圖片怎麼處理
區域網內可以考慮 rsync + inotify-tools
inotify可以監控文件系統的各種變化,當文件有任何變動時,就觸發rsync同步,這樣剛好解決了同步數據的實時性問題。
區域網內多台伺服器時可以配置Nginx把上傳等寫操作固定到其中一台php-FPM伺服器,然後用inotify+rsync同步到其它機器.
比如上傳操作定向到伺服器192.168.1.10進行處理:
location ^~ /upload.php {
include fastcgi_params;
fastcgi_pass 192.168.1.10:9000;
fastcgi_param SCRIPT_FILENAME /srv/www$fastcgi_script_name;
}
在伺服器192.168.1.10上用inotify+rsync同步文件到其他伺服器. 除上傳外,刪除、更改、移動等寫操作也要定向到192.168.1.10這台伺服器進行處理。