1. 程式人生 > >nginx配置優化提升

nginx配置優化提升

nginx是一款高效能的web和反向代理伺服器。(本文只針對nginx處理靜態資源的優化,闡述具體實踐過程。)Nginx就是反向代理伺服器。

這裡寫圖片描述

一個完整的代理請求過程為:客戶端首先與代理伺服器建立連線,然後根據代理伺服器所使用的代理協議,請求對目標伺服器建立連線、或則獲得目標伺服器的指定資源。Web代理伺服器是網路的中間實體。代理位於Web客戶端和Web伺服器之間,扮演“中間人”的角色。
HTTP的代理伺服器既是Web伺服器又是Web客戶端。
正向代理是一個位於客戶端和原始伺服器之間的伺服器,為了從原始伺服器取的內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端,客戶端必須要進行一些特別的設定才能使用正向代理。
正向代理客戶端必須設定正向代理伺服器,當然前提是要知道正向代理伺服器的IP地址,還有代理程式的埠。
反向代理正好與正向代理相反,對於客戶端而言代理伺服器就像是原始伺服器,並且客戶端不需要進行任何特別的設定。客戶端向反向代理的名稱空間中的內容傳送普通請求,接著反向代理將判斷向哪個原始伺服器轉交請求,並將獲得的內容返回給客戶端。
反向代理伺服器:在伺服器端接收客戶端的請求,然後把請求分發給具體的伺服器進行處理,然後再將伺服器的響應結果反饋給客戶端。Nginx就是其中的一種反向代理伺服器軟體。

關於nginx:

作為web伺服器的話nginx直接響應客戶端的請求,直接返回請求的網頁。(http伺服器)
做反向代理伺服器的話就相當於負載均衡器的排程器。

NAT負載均衡:

這裡寫圖片描述

這裡寫圖片描述

DMZ是英文“demilitarized zone”的縮寫,中文名稱為“隔離區”,也稱“非軍事化區”。DMZ通常是一個過濾的子網,DMZ在內部網路和外部網路之間構造了一個安全地帶。網路裝置開發商,利用這一技術,開發出了相應的防火牆解決方案,稱“非軍事區結構模式”。

nginx的worker_processes優化:

工作程序數,其預設值為1,這意味著NGINX只執行一個worker。worker程序用來處理請求

一般一個程序足夠了,你可以把連線數設得很大。
如果有SSL、gzip這些比較消耗CPU的工作,而且是多核CPU的話,可以設為和CPU的數量一樣。
或者要處理很多很多的小檔案,而且檔案總大小比記憶體大很多的時候,也可以把程序數增加,
以充分利用IO頻寬。
使用lscpu確定可用的核心數
worker_processes 4; #採用worker程序模式預設1,這裡設定成4,根據伺服器的cpu數量設定,最大不超過cpu數量的2倍或者,可以將其設定為auto。 這樣nginx會自動根據核心數為生成對應數量的worker程序。

必須要和CPU的核心數匹配,否則要麼就假死(主要是Windows),要麼就出現502的錯誤(主要是Linux)。

這裡寫圖片描述

nginx在啟動後,會有一個master程序和多個worker程序。master程序主要用來管理worker程序,包含:接收來自外界的訊號,向各worker程序傳送訊號,監控 worker程序的執行狀態,當worker程序退出後(異常情況下),會自動重新啟動新的worker程序。

Nginx是如何處理一個請求

首先,nginx在啟動時,會解析配置檔案,得到需要監聽的埠與ip地址,然後在nginx的master程序裡面,先初始化好這個監控的socket(建立socket,設定addrreuse等選項,繫結到指定的ip地址埠,再listen),然後再fork(一個現有程序可以呼叫fork函式建立一個 新程序。由fork建立的新程序被稱為子程序 )出多個子程序出來,然後子程序會競爭accept新的連線。此時,客戶端就可以向nginx發起連線了。當客戶端與nginx進行三次握手,與nginx建立好一個連線後,此時,某一個子程序會accept成功,得到這個建立好的連線的 socket,然後建立nginx對連線的封裝,即ngx_connection_t結構體。接著,設定讀寫事件處理函式並新增讀寫事件來與客戶端進行資料的交換。最後,nginx或客戶端來主動關掉連線,到此,一個連線就壽終正寢了。
nginx所能建立連線的最大值:這個值是表示每個worker程序所能建立連線的最大值
對於HTTP請求本地資源來說:一個nginx能建立的最大連線數,應該是 worker_connections * worker_processes
HTTP作為反向代理來說,最大併發數量應該是 worker_connections * worker_processes/2。因為作為反向代理伺服器,每個併發會建立與客戶端的連線和與後端服務的連線,會佔用兩個連線。

相關推薦

nginx配置優化提升

nginx是一款高效能的web和反向代理伺服器。(本文只針對nginx處理靜態資源的優化,闡述具體實踐過程。)Nginx就是反向代理伺服器。 一個完整的代理請求過程為:客戶端首先與代理伺服器建立連線,然後根據代理伺服器所使用的代理協議,請求對目標伺

Nginx配置優化參考

val time 反向代理服務器 ngx php sof wid io性能 web服務 Nginx配置優化參考

Nginx配置優化及深入講解,大家可以聽一下

inactive 建立連接 epo 快速 一個 sync 檢測 wait 新建 隨著訪問量的不斷增加,需要對Nginx和內核做相應的優化來滿足高並發用戶的訪問,那下面在單臺Nginx服務器來優化相關參數。 1) Nginx.conf配置優化: worker_pr

Nginx配置優化解讀

head 本地 oct 監聽 efault local nofile 避免 mime 全局配置 Nginx的配置文件是nginx的安裝目錄的conf/nginx .conf,nginx.conf配置文件中,幾個全局高級配置在模塊部分之上。 user www www; wo

[Nginx] – 配置優化NGINX.CONF [三]

nginx配置文件 nginx優化 逗哥自動化 nginx 本文主要針對nginx.conf配置文件,下面就把相關配置文件放到下面進行逐一的解釋 1、user 語法: user user[group]; 標簽: main 定義user和工作group 進程使用的憑證。如果group省略,use

nginx----配置優化

name err list cat roo root location nbsp nginx 錯誤頁面優化 server { listen 8001; server_name localhost; error_page

nginx配置-優化靜態資源

開啟gzip功能,gzip就是對網路傳輸的資料進行壓縮處理,從而節省頻寬。開啟nginx.conf檔案,在http模組下增加gzip on; gzip_min_length 1k; gzip_buf

Nginx配置優化指南

前言 大多數的Nginx安裝指南告訴你如下基礎知識——通過apt-get安裝,修改這裡或那裡的幾行配置,好了,你已經有了一個Web伺服器了!而且,在大多數情況下,一個常規安裝的nginx對你的網站來說已經能很好地工作了。然而,如果你真的想擠壓出nginx的效能,你必須更深入

nginx配置優化詳解

nginx優化(1)nginx運行工作進程個數,一般設置cpu的核心或者核心數x2如果不了解cpu的核數,可以top命令之後按1看出來,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l [[email protected]/* *

Nginx配置優化(轉載)

cpu strong 資源 大並發 網站流量統計 調優 傳遞 超時時間 ipv (1)nginx運行工作進程個數,一般設置cpu的核心或者核心數x2 如果不了解cpu的核數,可以top命令之後按1看出來,也可以查看/proc/cpuinfo文件 grep ^processo

nginx虛擬主機配置優化

linux優化[[email protected]/* */ conf]# mkdir extra [[email protected]/* */ conf]# vim nginx.conf[[email protected]/* */ conf]# cat nginx.c

Nginx配置參數優化註解

nginx### For more information on configuration, see: ### * Official English Documentation: ### auther:luo.m ##nginx運行用戶 user nginx; ##pid路徑 pid /run/ngi

Nginx服務優化配置

UC receive 優化 onf not 技術分享 nts syn span 1、expires緩存模塊 具體配置可參考官方文檔 http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires [

Web項目之Nginx配置文件優化

Nginx配置文體結構 優化目標: ----->>隱藏版本<<------------------------------ ----->>更改Nginx默認默認用戶<<---------- ----->>工作進程優化<<-------

nginx.conf 配置優化詳解

nginx優化 高並發 user www www;——配置nginx運行用戶和用戶組,使用之前創建用戶useradd www -s /sbin/nologin -M worker_processes 4;——配置nginx worker進程數,根據cpu內核數設置,也可以設置成auto worker

Nginx配置文件的優化

wait ade style 句柄 請求 避免 打印 生存 keepalive Nginx配置文件中需要優化的參數為以下幾項:worker_processes 8; Nginx配置文件進程數,可以按照cpu數目來指定,一般為它的倍數。worker_cpu_affinity

配置優化nginx處理PHP的請求

第一步:接受請求,發現是PHP請求,轉向第二步。 第二步:通過socket的方式,連線PHP-FPM的fast-cgi,讓PHP-FPM處理請求。 第三步:獲得PHP-FPM處理結果,加上http報頭,返回給客戶端。 所以,我們要提高nginx的PHP併發效能,我們需要做這三步。 1

nginx 配置效能優化

nginx是一個高併發web伺服器,所以沒有很好的優化配置可能會產生效能瓶頸與安全問題。 1.隱藏nginx版本號,防止根據某個軟體版本漏洞來攻擊伺服器  在http模組中新增server_tokens off; 或者在nginx編譯安裝前改掉所有涉及版本號的檔案,具體有哪些檔案有版

優化後的https--nginx配置示例

server { listen 443 ssl; server_name varycloud.com; access_log off; ssl_certificate cert.pem; ssl_certificate_k

Nginx 效能優化配置檔案詳解)

  隨著訪問量的不斷增加,需要對 Nginx 和核心做相應的優化來滿足高併發使用者的訪問,那下面在單臺 Nginx 伺服器來優化相關引數。 Nginx.conf 配置優化: worker_processes 8; nginx 程序數,建議按照 cpu 數目來指定,一般為它的倍數。worke