在 Linux 上微調 NGINX 性能的 8 種方法

在 Linux 上微調 NGINX 性能的 8 種方法

NGINX 是一種流行的、免費的開源 Web 服務器。默認的 NGINX 配置足以讓 Web 服務器正常工作。

但是,如果您想充分利用 NGINX,則需要使用其配置文件並設置可優化服務器性能的參數。您將在Linux 機器上的/etc/nginx目錄中找到配置文件。

什麼是 NGINX?

NGINX 是一種現代 Web 服務器,您可以將其用作媒體流、郵件服務器、反向代理、負載平衡器、緩存服務器等。

被 VMware、IBM、Cisco、Apple、Microsoft LinkedIn、Netflix、Facebook、Twitter 等許多大公司使用,NGINX 以其一流的性能而廣為人知。使用 NGINX 的另一個優點是易於配置和學習。

在 Linux 上調整 NGINX 性能的先決條件

在開始使用 NGINX 配置之前,您需要滿足以下要求:

  1. 在 Linux 上部署和配置的 NGINX 服務器
  2. 對 NGINX 及其配置文件的基本了解

如果您滿足這些要求,您就可以調整 NGINX 以獲得最佳性能。讓我們看看如何去做。

1.在NGINX中配置工作進程

NGINX 架構由一個主進程和多個工作進程組成。主進程的工作是評估配置和管理工人。另一方面,工作進程的作用是處理傳入的請求並在客戶端和服務器之間創建連接。

默認情況下,過程值設置為自動。這會將工作進程的數量設置為等於可用 CPU 內核的數量。要了解系統中有多少個 CPU 內核,請運行以下命令:

grep processor /proc/cpuinfo | wc -l

如果想增加worker進程數,需要在NGINX的配置文件中進行配置。

使用 nano 打開文件:

nano etc/nginx/nginx.conf

要配置更多工作進程,請將默認值更改為系統中可用 CPU 內核的最大數量。

nginx.configuration 文件顯示配置了 4 個處理器

2.配置工作連接

您可以修改以增強 NGINX 性能的另一個參數是工作連接數。這是每個工作進程可以同時處理的最大 TCP 連接數。

大多數係統的默認值為 512 個連接,但許多現代系統也支持更大的連接數。您可以檢查您的系統支持多少個連接:

ulimit -n

輸出將是支持的最大連接數。然後,您可以修改 NGINX 配置文件中的worker_connections變量以提高性能。

3. 在 NGINX 中允許 GZIP 壓縮

NGINX 使用 GZIP 進行文件壓縮和解壓縮。如果在 NGINX 配置文件中啟用,您可以節省帶寬並在連接緩慢時提高網站的加載時間。

要允許 GZIP 壓縮,請在 NGINX 配置文件中添加以下行:

server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}

在nginx配置文件中註釋gzip配置

4. 限制 NGINX 中的超時值

減少超時值在增強 NGINX 性能方面也起著重要作用。keepalive連接減少了打開和關閉連接時的處理器和網絡開銷。

您可以修改配置文件中的以下參數來限制超時:

http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}

5.調整緩衝區大小

您還可以調整 NGINX 緩衝區以優化服務器性能。如果緩衝區大小太小,那麼 NGINX 將寫入一個臨時文件,導致大量 I/O 操作不斷運行。

您需要為 NGINX 設置以下緩衝區參數以使其發揮最佳功能:

http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6.禁用訪問日誌或啟用訪問日誌緩衝

日誌會消耗大量磁盤空間和 CPU/IO 週期,如果它記錄每個請求,這會影響服務器的性能。

您可以禁用訪問日誌,這將節省一些磁盤空間和 CPU 處理。要禁用訪問日誌,請將以下行添加到 NGINX 配置文件中:

access_log off;

日誌很重要,因為它們有助於解決問題。完全禁用日誌不是一個好的做法。在這種情況下,您可以啟用訪問日誌緩衝。這將允許 NGINX 緩沖一系列日誌並將它們一次寫入日誌文件,而不是對每個請求應用不同的日誌操作。

在 NGINX 配置文件中添加以下行以允許訪問日誌緩衝:

access_log /var/log/nginx/access.log main buffer=16k

7.調整NGINX靜態內容緩存週期

網站上跨頁面保持相同的內容稱為靜態內容。緩存此內容允許將其放置在易於訪問的位置。這種機制減少了帶寬使用,允許快速訪問,並隨後提高了網站的性能。

當客戶端請求靜態內容時,服務器將提供內容的緩存版本。在/etc/nginx/sites-available目錄中的虛擬主機文件中添加以下行:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}

此配置將從上次瀏覽器訪問時間起將文件緩存 90 天。

8. 在 NGINX 中啟用打開文件緩存

您還可以在 NGINX 配置文件中使用打開文件緩存參數來增強其性能。該指令允許將文件描述符和經常訪問的文件緩存到服務器。

在配置文件的http部分添加以下行以啟用打開文件緩存:

http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}

通過修改其配置文件充分利用 NGINX

更改配置時要遵循的一個好習慣是一次處理一個設置並對其進行測試。如果有效,請轉到下一個設置。如果不是,您可以隨時將配置更改回默認值。

通過修改 NGINX 配置文件(如nginx.conf和虛擬主機文件)中配置的參數,您可以破解 NGINX 以獲得最佳性能。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *