在 Linux 上微調(diào) Nginx 獲得優(yōu)秀性能的八種方法
NGINX 是一種流行的、免費(fèi)的開源 Web 服務(wù)器。默認(rèn)的 NGINX 配置足以讓 Web 服務(wù)器正常工作。
但是,如果您想充分利用 NGINX,則需要使用其配置文件并設(shè)置可優(yōu)化服務(wù)器性能的參數(shù)。您將在Linux 機(jī)器上的 /etc/nginx 目錄中找到配置文件。
什么是 NGINX?
NGINX 是一種現(xiàn)代 Web 服務(wù)器,您可以將其用作媒體流、郵件服務(wù)器、反向代理、負(fù)載平衡器、緩存服務(wù)器等。
被 VMware、IBM、Cisco、Apple、Microsoft LinkedIn、Netflix、Facebook、Twitter 等許多大公司使用,NGINX 以其一流的性能而廣為人知。使用 NGINX 的另一個優(yōu)點(diǎn)是易于配置和學(xué)習(xí)。
在 Linux 上調(diào)整 NGINX 性能的先決條件
在開始使用 NGINX 配置之前,您需要滿足以下要求:
- 在 Linux 上部署和配置 NGINX 服務(wù)器?
- 對 NGINX 及其配置文件的基本了解
如果您滿足這些要求,您就可以調(diào)整 NGINX 以獲得最佳性能。讓我們看看如何去做。
1.在NGINX中配置工作進(jìn)程
NGINX 架構(gòu)由一個主進(jìn)程和多個工作進(jìn)程組成。主進(jìn)程的工作是評估配置和管理工人。另一方面,工作進(jìn)程的作用是處理傳入的請求并在客戶端和服務(wù)器之間創(chuàng)建連接。
默認(rèn)情況下,過程值設(shè)置為自動。這會將工作進(jìn)程的數(shù)量設(shè)置為等于可用 CPU 內(nèi)核的數(shù)量。要了解系統(tǒng)中有多少個 CPU 內(nèi)核,請運(yùn)行以下命令:
我的測試機(jī)器只有1。
如果想增加 worker 進(jìn)程數(shù),需要在 NGINX 的配置文件中進(jìn)行配置。
使用 nano 打開文件:
要配置更多工作進(jìn)程,請將默認(rèn)值更改為系統(tǒng)中可用 CPU 內(nèi)核的最大數(shù)量。
2.配置 Worker_Connections
您可以修改以增強(qiáng) NGINX 性能的另一個參數(shù)是Worker_Connections。這是每個工作進(jìn)程可以同時處理的最大 TCP 連接數(shù)。
大多數(shù)系統(tǒng)的默認(rèn)值為 512 個連接,但許多現(xiàn)代系統(tǒng)也支持更大的連接數(shù)。您可以檢查您的系統(tǒng)支持多少個連接:
輸出將是支持的最大連接數(shù)。然后,您可以修改 NGINX 配置文件中的 worker_connections 變量以提高性能。
3. 在 NGINX 中允許 GZIP 壓縮
NGINX 使用 GZIP 進(jìn)行文件壓縮和解壓縮。如果在 NGINX 配置文件中啟用,您可以節(jié)省帶寬并在連接緩慢時提高網(wǎng)站的加載時間。
要允許 GZIP 壓縮,請在 NGINX 配置文件中添加以下行:
4. 限制 NGINX 中的超時值
減少超時值在增強(qiáng) NGINX 性能方面也起著重要作用。keepalive 連接減少了打開和關(guān)閉連接時的處理器和網(wǎng)絡(luò)開銷。
您可以修改配置文件中的以下參數(shù)來限制超時:
5.調(diào)整緩沖區(qū)大小
您還可以調(diào)整 NGINX 緩沖區(qū)以優(yōu)化服務(wù)器性能。如果緩沖區(qū)大小太小,那么 NGINX 將寫入一個臨時文件,導(dǎo)致大量 I/O 操作不斷運(yùn)行。
您需要為 NGINX 設(shè)置以下緩沖區(qū)參數(shù)以使其發(fā)揮最佳功能:
6.禁用訪問日志或啟用訪問日志緩沖
日志會消耗大量磁盤空間和 CPU/IO 周期,如果它記錄每個請求,這會影響服務(wù)器的性能。
您可以禁用訪問日志,這將節(jié)省一些磁盤空間和 CPU 處理。要禁用訪問日志,請將以下行添加到 NGINX 配置文件中:
日志很重要,因為它們有助于解決問題。完全禁用日志不是一個好的做法。在這種情況下,您可以啟用訪問日志緩沖。這將允許 NGINX 緩沖一系列日志并將它們一次寫入日志文件,而不是對每個請求應(yīng)用不同的日志操作。
在 NGINX 配置文件中添加以下行以允許訪問日志緩沖:
7.調(diào)整 NGINX 靜態(tài)內(nèi)容緩存周期
網(wǎng)站上跨頁面保持相同的內(nèi)容稱為靜態(tài)內(nèi)容。緩存此內(nèi)容允許將其放置在易于訪問的位置。這種機(jī)制減少了帶寬使用,允許快速訪問,并隨后提高了網(wǎng)站的性能。
當(dāng)客戶端請求靜態(tài)內(nèi)容時,服務(wù)器將提供內(nèi)容的緩存版本。在 /etc/nginx/sites-available 目錄中的虛擬主機(jī)文件中添加以下行:
此配置將從上次瀏覽器訪問時間起將文件緩存 100 天。
8. 在 NGINX 中啟用打開文件緩存
您還可以在 NGINX 配置文件中使用打開文件緩存參數(shù)來增強(qiáng)其性能。該指令允許將文件描述符和經(jīng)常訪問的文件緩存到服務(wù)器。
在配置文件的http部分添加以下行以啟用打開文件緩存:
通過修改其配置文件充分利用 NGINX
更改配置時要遵循的一個好習(xí)慣是一次處理一個設(shè)置并對其進(jìn)行測試。如果有效,請轉(zhuǎn)到下一個設(shè)置。如果不是,您可以隨時將配置更改回默認(rèn)值。
通過修改 NGINX 配置文件(如 nginx.conf 和虛擬主機(jī)文件)中配置的參數(shù),您可以熟知 NGINX 以獲得最佳性能。