日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

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

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

前言

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

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

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

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

Nginx gzip壓縮特點

  • 提升網站用戶體驗:發送給用戶的內容小了,用戶訪問單位大小的頁面就加快了,用戶體驗也就隨之提升。

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

參數配置

對應的參數配置解釋如下:

gzip on;

開啟gzip壓縮功能。

gzip_min_length lk;

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

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

gzip_buffers 4 16k;

壓縮緩沖區大小。表示申請4個單位為16K的內存作為壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果。

gzip_http_version 1.1;

壓縮版本(默認1.1,前端為 squid2.5時使用1.0),用于設置識別HTTP協議版本,默認是1.1,目前大部分瀏覽器已經支持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類型進行gzipping響應。特殊值“*”匹配任何MIME類型(0.8.29)。

text/html始終壓縮具有“ ”類型的響應。

gzip_vary on;

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

實際參數優化配置如下:

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 參數用于開啟文件的高效傳輸模式。同時將tcp_nopush和tcp_nodelay兩個指令設置為on,可防止網絡及磁盤IO阻塞,實際提高性能。

sendfile on ;

tcp_nopush on;

tcp_nodelay on;

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

方案三:控制Nginx并發連接數量

我們可以通過限制每個key值的連接數,尤其是控制單個IP可連接數。此方法在服務器下載,限制每次訪問下載目錄的連接數尤其有效。對應配置為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參數

server {

listen 80;

servername www.sogou.com;

location / {

root html;

index index.html index.htm;

limit_conn addr 1; # 設置單IP連接數為1

}

}

}

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

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

模擬并發連接2,訪問服務器10次,可看到狀態碼200和503間隔是1:1 說明nginx已經做了并發連接的限制,對超時連接做出了503響應。

結束語

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。