日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

nginx 还是欢迎界面_初识Nginx性能安全优化

發(fā)布時間:2025/4/17 223 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx 还是欢迎界面_初识Nginx性能安全优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

最近小編的項目上線了官方網(wǎng)站,同大部分Web服務(wù)網(wǎng)站相同,小編項目的Web站采用了LNMP(Linux、Nginx、Mysql、PHP)架構(gòu)。其中Nginx的作用是將靜態(tài)資源進行解析返回給用戶;動態(tài)資源通過FastCGI接口發(fā)送給PHP引擎服務(wù),PHP進行讀庫解析,并最終把Nginx服務(wù)把獲取的數(shù)據(jù)返給用戶。

因為此Web站主要作用是協(xié)助運營同學(xué)推廣產(chǎn)品,所以除了最基本的網(wǎng)站頁面測試,Web頁面的性能、合理的服務(wù)器資源分配同時也是比較重要的需求。一方面,我們可以通過優(yōu)化瀏覽器渲染、HTML文件格式、文本資源壓縮等方式提升頁面性能;一方面可以考慮優(yōu)化Nginx的配置來增強其傳輸及并發(fā)支持能力。

方案一:配置Nginx gzip壓縮提升性能

Nginx gzip壓縮模塊提供了壓縮文件內(nèi)容的功能,用戶請求的內(nèi)容在發(fā)送到客戶端之前,Nginx服務(wù)器會根據(jù)一些具體的策略實施壓縮,以節(jié)約網(wǎng)站出口帶寬,同時加快數(shù)據(jù)傳輸效率,來提升用戶訪問體驗。

Nginx gzip壓縮特點

  • 提升網(wǎng)站用戶體驗:發(fā)送給用戶的內(nèi)容小了,用戶訪問單位大小的頁面就加快了,用戶體驗也就隨之提升。

  • 節(jié)約網(wǎng)站帶寬成本:數(shù)據(jù)是壓縮傳輸?shù)?因此節(jié)省了網(wǎng)站的帶寬流量成本,不過壓縮時會稍微消耗一些CPU資源,這個一般可以忽略。

參數(shù)配置

對應(yīng)的參數(shù)配置解釋如下:

gzip on;

開啟gzip壓縮功能。

gzip_min_length lk;

設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從 header頭的 Content-Length中獲取。默認值是0,表示不管頁面多大都進行壓縮。建議設(shè)置成大于1K,

如果小于1K可能會越壓越大。

gzip_buffers 4 16k;

壓縮緩沖區(qū)大小。表示申請4個單位為16K的內(nèi)存作為壓縮結(jié)果流緩存,默認值是申請與原始數(shù)據(jù)大小相同的內(nèi)存空間來存儲gzip壓縮結(jié)果。

gzip_http_version 1.1;

壓縮版本(默認1.1,前端為 squid2.5時使用1.0),用于設(shè)置識別HTTP協(xié)議版本,默認是1.1,目前大部分瀏覽器已經(jīng)支持G2IP解壓,使用默認即可。

gzip_comp_level 2;

壓縮比率。用來指定gzip壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理最慢,也比較消耗CPU資源。

gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml applicat ion/xml+rss;

用來指定壓縮的類型,除了“ text/html” 之外,還允許對指定的MIME類型進行g(shù)zipping響應(yīng)。特殊值“*”匹配任何MIME類型(0.8.29)。

text/html始終壓縮具有“ ”類型的響應(yīng)。

gzip_vary on;

vary header支持。該選項可以讓前端的緩存服務(wù)器緩存經(jīng)過gzip壓縮的頁面,例如用Squid緩存經(jīng)過 Nginx壓縮的數(shù)據(jù)。

實際參數(shù)優(yōu)化配置如下:

gzip on;

gzip_min_length 1k;

gzip_buffers 4 32k;

gzip_comp_level 5;

gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;

gzip_vary on;

方案二:開啟高效文件傳輸模式

Nginx其實是存在高效模式的,如同顯卡和CPU我們可以通過超頻來榨干它們的性能,我們也可以開啟一些隱藏模式來提升Nginx的工作效率。

sendfile 參數(shù)用于開啟文件的高效傳輸模式。同時將tcp_nopush和tcp_nodelay兩個指令設(shè)置為on,可防止網(wǎng)絡(luò)及磁盤IO阻塞,實際提高性能。

sendfile on ;

tcp_nopush on;

tcp_nodelay on;

tcp_nopush 參數(shù)用于激活 Linux 上的 TCP_CORK socket 選項,此選項僅僅當(dāng)開啟 sendfile 時才生效,tcp_nopush 參數(shù)可以允許把 http response header 和文件的開始部分放在一個文件里發(fā)布,以減少網(wǎng)絡(luò)報文段的數(shù)量

方案三:控制Nginx并發(fā)連接數(shù)量

我們可以通過限制每個key值的連接數(shù),尤其是控制單個IP可連接數(shù)。此方法在服務(wù)器下載,限制每次訪問下載目錄的連接數(shù)尤其有效。對應(yīng)配置為nginx_http_limit_conn_module。

實際配置文件如下:

[root@Nginx conf]# cat nginx.conf

worker_processes 4;

events {

worker_connections 20480;

}

http {

include mime.types;

server_tokens on;

sendfile on;

keepalive_timeout 65;

default_type application/octet-stream;

limit_conn_zone $binary_remove_addr zone=addr:10m; # 添加limit_conn_zone參數(shù)

server {

listen 80;

servername www.sogou.com;

location / {

root html;

index index.html index.htm;

limit_conn addr 1; # 設(shè)置單IP連接數(shù)為1

}

}

}

在客戶端使用ab測試工具進行測試:

ab -c 2 -n 10 http://127.0.0.1/

模擬并發(fā)連接2,訪問服務(wù)器10次,可看到狀態(tài)碼200和503間隔是1:1 說明nginx已經(jīng)做了并發(fā)連接的限制,對超時連接做出了503響應(yīng)。

結(jié)束語

在保障基本功能的同時優(yōu)化前后端性能具有重要意義;產(chǎn)品的基礎(chǔ)是用戶體驗,如果脫離了快速、高效的用戶體驗,設(shè)計再為漂亮的界面也毫無意義。所以當(dāng)我們在做需求的時候,除了基本的“測試保障”,同時也需要了解架構(gòu)實現(xiàn)細節(jié),優(yōu)化安全與效率性,切實測出一個可用、平穩(wěn)、高效的線上產(chǎn)品。

歡迎添加我們的搜狗測試微信號,與我們一起聊聊測試。

總結(jié)

以上是生活随笔為你收集整理的nginx 还是欢迎界面_初识Nginx性能安全优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。