Nginx的配置是以模塊為單位來(lái)組織的,每一個(gè)模塊包含一個(gè)或多個(gè)指令,指令是配置文件中的最小配置單元,一切配置項(xiàng)皆為指令。如http核心模塊中的include、default_type、sendfile指令,都屬于http模塊。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)頁(yè)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、玉門(mén)網(wǎng)站維護(hù)、網(wǎng)站推廣。注意:以下配置中的“上下文”表示指令可以配置在哪些模塊中。 main:頂層配置,約束服務(wù)器的行為 1 2 3 1、服務(wù)器級(jí)別核心配置 指令 上下文 語(yǔ)法 默認(rèn)值 功能描述 user main usernobodynobyd; nobody 以哪個(gè)用戶權(quán)限運(yùn)行工作線程 daemon main daemonyes; yes nginx是否以守護(hù)進(jìn)程運(yùn)行 worker_processes main worker_processesnumber; 1 配置工作進(jìn)程數(shù)。傳統(tǒng)的web服務(wù)器(如apache)都是同步阻塞模型,一請(qǐng)求一進(jìn)(線)程模式,當(dāng)進(jìn)(線)程數(shù)增達(dá)到一定程度后,更多CPU時(shí)間浪費(fèi)在線程和進(jìn)程切換當(dāng)中,性能急劇下降,所以負(fù)載率不高。Nginx是基于事件的非阻塞多路復(fù)用(epoll或kquene)模型,一個(gè)進(jìn)程在短時(shí)間內(nèi)就可以響應(yīng)大量的請(qǐng)求。建議將該值設(shè)置<=cpu核心數(shù)量,一般高于cpu核心數(shù)量不會(huì)帶來(lái)好處,反而可能會(huì)有進(jìn)程切換開(kāi)銷(xiāo)的負(fù)面影響。 worker_connections events worker_connectionsnumber; 1024 并發(fā)響應(yīng)能力的關(guān)鍵配置值,表示每個(gè)進(jìn)程允許的同時(shí)連接數(shù)。maxConnection=work_connections*worker_processes;一般一個(gè)瀏覽器會(huì)同時(shí)開(kāi)兩條連接,如果是反向代理,nginx到后服務(wù)器的連接數(shù)量也要占用2條連接數(shù),所以,做靜態(tài)服務(wù)器,一般maxConnection=work_connections*worker_processes/2;做反代理服務(wù)器時(shí)maxConnection=work_connections*worker_processes/4; use events useepoll; 根據(jù)不同的平臺(tái),選擇高效的連接處理方法 指定處理連接請(qǐng)求的方法。linux內(nèi)核2.6以上默認(rèn)使用epoll方法,其它平臺(tái)請(qǐng)參考:http://nginx.org/en/docs/events.html備注:要達(dá)到超高負(fù)載下最好的網(wǎng)絡(luò)響應(yīng)能力,還有必要優(yōu)化與網(wǎng)絡(luò)相關(guān)的linux內(nèi)核參數(shù) worker_cpu_affinity main worker_cpu_affinitycpumask…; 無(wú) 將工作進(jìn)程綁定到特定的CPU上,減少CPU在進(jìn)程之間切換的開(kāi)銷(xiāo)。用二進(jìn)制bit位表示進(jìn)程綁定在哪個(gè)CPU內(nèi)核。如8內(nèi)核4進(jìn)程時(shí)的設(shè)置方法:worker_cpu_affinity00000001000000100000010010000000 worker_rlimit_nofile main worker_rlimit_coresize; 受linux內(nèi)核文件描述符數(shù)量限制 設(shè)置nginx能打開(kāi)的文件描述符數(shù)量。因?yàn)長(zhǎng)inux對(duì)每個(gè)進(jìn)程所能打開(kāi)的文件描述數(shù)量是有限制的,默認(rèn)一般是1024個(gè),可通過(guò)ulimit-nFILECNT或/etc/securit/limits.conf配置修改linux默認(rèn)能打開(kāi)的文件句柄數(shù)限制。建議值為:系統(tǒng)數(shù)量/進(jìn)程數(shù)。但進(jìn)程間工作量并不是平均分配的,所以可以設(shè)置在大一些。推薦值為:655350 error_log main,http,mail,stream,server,location error_log日志文件路徑日志級(jí)別; error_loglogs/error.logerror; 配置錯(cuò)誤日志文件的路徑和日志級(jí)別。日志級(jí)別有debug,info,notice,warn,error,crit,alert和emerg幾種。nginx的日志使用syslog輸出,所以輸出的日志格式是有規(guī)律的,系統(tǒng)運(yùn)維人員可以根據(jù)日志規(guī)則進(jìn)行查錯(cuò)或統(tǒng)計(jì)分析。更多說(shuō)明請(qǐng)參考官方文檔:http://nginx.org/en/docs/ngx_core_module.html#error_log pid main pid守護(hù)進(jìn)程socket文件路徑; pidlogs/nginx.pid 配置nginx守護(hù)進(jìn)程ID存儲(chǔ)文件路徑(不是工作進(jìn)程)
以上是nginx的頂層配置,管理服務(wù)器級(jí)別的行為。
nginx做為一個(gè)HTTP反向代理服務(wù)器,平時(shí)接觸得最多的應(yīng)該是針對(duì)http請(qǐng)求的相關(guān)配置了,和http模塊有關(guān)的所有配置都放在http{...}配置中。
指令 上下文 語(yǔ)法 功能描述 types http,server,location types{mime類(lèi)型文件后綴;}; 配置能處理的文件類(lèi)型。如:text/htmlhtmlhtmshtml; include any include文件路徑; 將外部文件的內(nèi)容做為配置拷貝到nginx.conf文件中。如:includemime.type;將當(dāng)前目錄下的mime.type配置文件拷貝到nginx配置文件中。文件路徑可以是相對(duì)路徑或絕對(duì)路徑。文件名可以用*來(lái)表示通配符。 default_type http,server,location default_typemime類(lèi)型; 文件名到后綴的映射關(guān)系。配置默認(rèn)的mime類(lèi)型,當(dāng)在types指令中找不到請(qǐng)求的文件類(lèi)型時(shí),就使用default_type指定的類(lèi)型。默認(rèn)為text/plain類(lèi)型。 access_log http,server,location,ifinlocation,limit_except access_logpath[format[buffer=size][gzip[=level]][flush=time][if=condition]];#nginx不同于apache服務(wù)器,當(dāng)進(jìn)行了大量?jī)?yōu)化設(shè)置后會(huì)魔術(shù)般的明顯性能提升效果 #nginx在安裝完成后,大部分參數(shù)就已經(jīng)是最優(yōu)化了,我們需要管理的東西并不多 #usernobody; #阻塞和非阻塞網(wǎng)絡(luò)模型: #同步阻塞模型,一請(qǐng)求一進(jìn)(線)程,當(dāng)進(jìn)(線)程增加到一定程度后 #更多CPU時(shí)間浪費(fèi)到切換一,性能急劇下降,所以負(fù)載率不高 #Nginx基于事件的非阻塞多路復(fù)用(epoll或kquene)模型 #一個(gè)進(jìn)程在短時(shí)間內(nèi)可以響應(yīng)大量的請(qǐng)求 #建議值<=cpu核心數(shù)量,一般高于cpu數(shù)量不會(huì)帶好處,也許還有進(jìn)程切換開(kāi)銷(xiāo)的負(fù)面影響 worker_processes4; #將workprocess綁定到特定cpu上,避免進(jìn)程在cpu間切換的開(kāi)銷(xiāo) worker_cpu_affinity0001001001001000 #8內(nèi)核4進(jìn)程時(shí)的設(shè)置方法worker_cpu_affinity00000001000000100000010010000000 #每進(jìn)程可打開(kāi)文件描述符數(shù)量(linux上文件描述符比較廣義,網(wǎng)絡(luò)端口、設(shè)備、磁盤(pán)文件都是) #文件描述符用完了,新的連接會(huì)被拒絕,產(chǎn)生502類(lèi)錯(cuò)誤 #linux可打開(kāi)文件數(shù)可通過(guò)ulimit-nFILECNT或/etc/security/limits.conf配置 #理論值系統(tǒng)數(shù)量/進(jìn)程數(shù)。但進(jìn)程間工作量并不是平均分配的,所以可以設(shè)置的大一些 worker_rlimit_nofile65535; #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; #pidlogs/nginx.pid; events{ #并發(fā)響應(yīng)能力的關(guān)鍵配置值 #每個(gè)進(jìn)程允許的同時(shí)連接數(shù),work_connectins*worker_processes=maxConnection; #要注意maxConnections不等同于可響應(yīng)的用戶數(shù)量, #因?yàn)橐话阋粋€(gè)瀏覽器會(huì)同時(shí)開(kāi)兩條連接,如果反向代理,nginx到后端服務(wù)器的連接也要占用連接數(shù) #所以,做靜態(tài)服務(wù)器時(shí),一般maxClient=work_connectins*worker_processes/2 #做反向代理服務(wù)器時(shí)maxClient=work_connectins*worker_processes/4 #這個(gè)值理論上越大越好,但最多可承受多少請(qǐng)求與配件和網(wǎng)絡(luò)相關(guān),也可可打開(kāi)文件,可用sockets數(shù)量(約64K)有關(guān) worker_connections65535; #指明使用epoll或kquene(*BSD) useepoll; #備注:要達(dá)到超高負(fù)載下最好的網(wǎng)絡(luò)響應(yīng)能力,還有必要優(yōu)化與網(wǎng)絡(luò)相關(guān)的linux內(nèi)核參數(shù) } http{ includemime.types; default_typeapplication/octet-stream; #log_formatmain\'$remote_addr-$remote_user[$time_local]"$request"\' #\'$status$body_bytes_sent"$http_referer"\' #\'"$http_user_agent""$http_x_forwarded_for"\'; #關(guān)閉此項(xiàng)可減少I(mǎi)O開(kāi)銷(xiāo),但也無(wú)法記錄訪問(wèn)信息,不利用業(yè)務(wù)分析,一般運(yùn)維情況不建議使用 access_logoff #只記錄更為嚴(yán)重的錯(cuò)誤日志,可減少I(mǎi)O壓力 error_loglogs/error.logcrit; #access_loglogs/access.logmain; #啟用內(nèi)核復(fù)制模式,應(yīng)該保持開(kāi)啟達(dá)到最快IO效率 sendfileon; #簡(jiǎn)單說(shuō),啟動(dòng)如下兩項(xiàng)配置,會(huì)在數(shù)據(jù)包達(dá)到一定大小后再發(fā)送數(shù)據(jù) #這樣會(huì)減少網(wǎng)絡(luò)通信次數(shù),降低阻塞概率,但也會(huì)影響響應(yīng)及時(shí)性 #比較適合于文件下載這類(lèi)的大數(shù)據(jù)包通信場(chǎng)景 #tcp_nopushon;在 #tcp_nodelayon|offon禁用Nagle算法 #keepalive_timeout0; #HTTP1.1支持持久連接alive #降低每個(gè)連接的alive時(shí)間可在一定程度上提高可響應(yīng)連接數(shù)量,所以一般可適當(dāng)降低此值 keepalive_timeout30s; #啟動(dòng)內(nèi)容壓縮,有效降低網(wǎng)絡(luò)流量 gzipon; #過(guò)短的內(nèi)容壓縮效果不佳,壓縮過(guò)程還會(huì)浪費(fèi)系統(tǒng)資源 gzip_min_length1000; #可選值1~9,壓縮級(jí)別越高壓縮率越高,但對(duì)系統(tǒng)性能要求越高 gzip_comp_level4; #壓縮的內(nèi)容類(lèi)別 gzip_typestext/plaintext/cssapplication/jsonapplication/x-javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascript; #靜態(tài)文件緩存 #緩存數(shù)量,文件未使用存活期 open_file_cachemax=65535inactive=20s; #驗(yàn)證緩存有效期時(shí)間間隔 open_file_cache_valid30s; #有效期內(nèi)文件最少使用次數(shù) open_file_cache_min_uses2; server{ listen80; server_namelocalhost; charsetutf-8; #access_loglogs/host.access.logmain; location/{ roothtml; indexindex.htmlindex.htm; } #error_page404/404.html; #redirectservererrorpagestothestaticpage/50x.html # error_page500502503504/50x.html; location=/50x.html{ roothtml; } ... } ... }
網(wǎng)頁(yè)標(biāo)題:nginx
轉(zhuǎn)載注明:http://www.rwnh.cn/article46/cgceeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站策劃、企業(yè)建站、建站公司、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)