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 配置之前,您需要滿足以下要求:
- 在 Linux 上部署和配置 NGINX 伺服器 連結:https://www.linuxmi.com/debian-11-nginx.html
- 對 NGINX 及其配置檔案的基本了解
如果您滿足這些要求,您就可以調整 NGINX 以獲得最佳性能。讓我們看看如何去做。
1.在NGINX中配置工作程序
NGINX 架構由一個主程序和多個工作程序組成。主程序的工作是評估配置和管理勞工。另一方面,工作程序的作用是處理傳入的請求并在用戶端和伺服器之間建立連接配接。
預設情況下,過程值設定為自動。這會将工作程序的數量設定為等于可用 CPU 核心的數量。要了解系統中有多少個 CPU 核心,請運作以下指令:
linuxmi@linuxmi:~/www.linuxmi.com$ grep processor /proc/cpuinfo | wc -l
我的測試機器隻有1。
如果想增加 worker 程序數,需要在 NGINX 的配置檔案中進行配置。
使用 nano 打開檔案:
linuxmi@linuxmi:~/www.linuxmi.com$ nano /etc/nginx/nginx.conf
要配置更多工作程序,請将預設值更改為系統中可用 CPU 核心的最大數量。
2.配置 worker_connections
您可以修改以增強 NGINX 性能的另一個參數是 Worker_Connections。這是每個工作程序可以同時處理的最大 TCP 連接配接數。
大多數系統的預設值為 512 個連接配接,但許多現代系統也支援更大的連接配接數。您可以檢查您的系統支援多少個連接配接:
linuxmi@linuxmi:~/www.linuxmi.com$ 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]\.";
}
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 100d;
}
此配置将從上次浏覽器通路時間起将檔案緩存 100 天。
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 以獲得最佳性能。
連結:https://www.linuxmi.com/linux-nginx-performance.html