欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx如何配置參數(shù)以及變量

 更新時(shí)間:2024年01月11日 15:42:14   作者:拿命搏未〃來(lái)  
這篇文章主要介紹了nginx如何配置參數(shù)以及變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

配置詳解

1.daemon:是否以守護(hù)進(jìn)程的方式運(yùn)行nginx

  • daemon on | off ,默認(rèn)值為on;

2.master_process:是否以master/worker方式工作

  • master_process on | off ,默認(rèn)值為on;
  • 在大多數(shù)情況下nginx還是以master進(jìn)程管理多個(gè)worker進(jìn)程的方式運(yùn)行的,關(guān)閉了master_process之后nginx將以master進(jìn)程來(lái)處理請(qǐng)求

3.error_log:日志的設(shè)置; 格式: /path/file level, 默認(rèn)值為error_log logs/error.log error;

  • /path/file參數(shù)為一個(gè)具體的文件。
  • level的值可為:debug,info,notice,warn,error,crit,alert,emerg。
  • level的級(jí)別從左往右級(jí)別依次增大,當(dāng)設(shè)定一個(gè)級(jí)別時(shí),大于或等于改級(jí)別的日志都會(huì)被輸出到path/file文件中,小于該級(jí)別的日志則不會(huì)輸出。

4.env:定義環(huán)境變量

  • env VAR | VAR=VALUE
  • 這項(xiàng)配置能夠讓用戶直接設(shè)置操作系統(tǒng)上的環(huán)境變量。

5.include:嵌入其他配置文件

  • include配置能夠?qū)⑵渌渲梦募度氲疆?dāng)前的nginx.conf中,他的參數(shù)可以是絕對(duì)路徑,也可以是相對(duì)路徑(相對(duì)路徑主目錄為nginx.conf所在目錄)。

6.pid:配置pid文件的路徑( path/file)

  • pid文件保存著master進(jìn)程id。該文件會(huì)直接影響nginx的服務(wù)運(yùn)行。

7.user:nginx worker進(jìn)程運(yùn)行的用戶及用戶組

  • user username [groupname],默認(rèn)值為nobody;
  • user用于配置master進(jìn)程啟動(dòng)后,fork出的worker進(jìn)程運(yùn)行在哪個(gè)用戶和用戶組下。

8.worker_rlimit_nofile:指定nginx進(jìn)程可以打開(kāi)的最大文件個(gè)數(shù)。

  • worker_rlimit_nofile limit;

9.worker_process:nginx的worker進(jìn)程數(shù),默認(rèn)值1;

  • 在master/worker運(yùn)行的方式下,定義worker進(jìn)程的個(gè)數(shù)。
  • worker進(jìn)程的數(shù)量直接影響性能。
  • worker進(jìn)程的配置與我們的實(shí)際業(yè)務(wù)需求有關(guān),每個(gè)worker進(jìn)程都是單線程的進(jìn)程,他們會(huì)調(diào)用各個(gè)模塊以實(shí)現(xiàn)多種多樣的功能。
  • 如果能夠確定這些模塊不會(huì)出現(xiàn)阻塞的調(diào)用,那么有多少CPU內(nèi)核就應(yīng)該配置多少個(gè)進(jìn)程;反之,如果可能出現(xiàn)阻塞式調(diào)用,那么需要配置稍多一些的worker進(jìn)程。
  • 多個(gè)worker進(jìn)程能夠充分利用多核系統(tǒng)架構(gòu),但若worker進(jìn)程的數(shù)量多于CPU內(nèi)核數(shù),那么會(huì)增大進(jìn)程間的切換帶來(lái)的消耗。

10.worker_cpu_affinity:綁定nginx worker進(jìn)程到指定的cpu內(nèi)核。

 worker_cpu_affinity cpumask;  
 worker_process 4;  #開(kāi)啟4個(gè)進(jìn)程
 #2核cpu,開(kāi)啟4個(gè)進(jìn)程 
 worker_cpu_affinity 01 10 01 10; 
 #4核cpu,開(kāi)啟4個(gè)進(jìn)程 
 worker_cpu_affinity  1000 0100 0010 0001;
  • 為什么一定需要綁定CPU內(nèi)核?
  • 假設(shè)每個(gè)worker進(jìn)程都是非常繁忙的,如果多個(gè)worker進(jìn)程都在搶同一個(gè)CPU,那么這就會(huì)出現(xiàn)同步問(wèn)題。
  • 反之如果每個(gè)進(jìn)程都是獨(dú)享一個(gè)CPU,就在內(nèi)核調(diào)度策略上實(shí)現(xiàn)了完全的并發(fā)。

11.ssl_engine device:硬件加速

  • 如果服務(wù)器上有ssl硬件加速設(shè)備,那么就可以進(jìn)行配置以加快ssl協(xié)議的處理速度,可以通過(guò)OpenSSLengine
  • -t命令查看是否具備ssl硬件加速設(shè)備

12.worker_priority: nginx進(jìn)程的優(yōu)先級(jí)設(shè)置(指明worker進(jìn)程的nice值)

  • worker_priority nice;默認(rèn)值為0;

13.accept_mutex:是否打開(kāi)accept鎖

  • accept_mutex on | off,默認(rèn)值為on;
  • accept_mutex是nginx的負(fù)載均衡鎖,accept_mutex這把鎖可以讓多個(gè)worker進(jìn)程輪流的,序列化的與新的客戶端建立tcp連接。
  • 當(dāng)某一個(gè)worker進(jìn)程建立的連接數(shù)量達(dá)到worker_connections配置的最大連接數(shù)的7/8時(shí),會(huì)大大地減小這個(gè)worker進(jìn)程試圖建立新tcp連接的機(jī)會(huì),以此實(shí)現(xiàn)所有worker進(jìn)程之上處理的客戶端請(qǐng)求數(shù)量接近。

14.lock_file:lock文件的路徑

  • lock_file path/file,默認(rèn)值:lock_file logs/nginx.lock;
  • accept鎖需要這個(gè)文件,如果accept鎖關(guān)閉,lock_file配置完全不生效。

15.accept_mutex_delay

  • 使用accept鎖后到真正建立連接之間的延遲時(shí)間,默認(rèn):accept_mutex_delay 500ms;

在使用accept鎖后,同一時(shí)間只有一個(gè)worker進(jìn)程能夠取到accept鎖。

這個(gè)accept鎖不是阻塞鎖,如果取不到會(huì)立刻返回。

如果有一個(gè)worker進(jìn)程試圖取accept鎖而沒(méi)有取到,它至少要等accept_mutex_delay定義的時(shí)間間隔后才能再次試圖取鎖。

16.multi_accept: 批量建立新連接

  • multi_accept[on]off],默認(rèn): multi_accept off,
  • 當(dāng)事件模型通知有新連接時(shí),盡可能地對(duì)本次調(diào)度中客戶端發(fā)起的所有TCP請(qǐng)求都建立連接。

17.use: 選擇事件模型

  • use[ kqueue]rtsiglepoll/dev/pollselectpollleventport];默認(rèn):Nginx會(huì)自動(dòng)使用最適合的事件模型。
  • 對(duì)于Linux操作系統(tǒng)來(lái)說(shuō),可供選擇的事件驅(qū)動(dòng)模型有poll、select、epoll三種。
  • epoll當(dāng)然是性能最高的一種,epoll可以處理大并發(fā)連接。

18.worker_connections:每個(gè)worker的最大連接數(shù)

  • worker_connections number;
  • 定義每個(gè)worker進(jìn)程可以同時(shí)處理的最大連接數(shù)。

19.全局變量

  • $args 變量中存放了請(qǐng)求URL中的請(qǐng)求指令。比如
  • http:/www.xxxx.com/index/index?argl=valuel&arg2=value2中的“argl=valuel&arg2=value2”

如下所示

  • $content_length 變量中存放了請(qǐng)求頭中的Content-length字段
  • $content_type 變量中存放了請(qǐng)求頭中的Content-type字段
  • $document_root 變量中存放了針對(duì)當(dāng)前請(qǐng)求的根路徑
  • $document_uri 變量中存放了請(qǐng)求中的當(dāng)前URI,并且不包括請(qǐng)求指令,比如 http://www.xxxx.com/index/index?argl-value1&arg2-value2中的“/index/index
  • $host 變量中存放了請(qǐng)求URL中的主機(jī)部分字段、比如http://www.xxxx.com/index中的"“www.xxxx.com”。如果請(qǐng)求中 的主機(jī)部分字段不可用或者為空,則存放Nginx配置中該server塊中
  • server_name指令的配置值
  • $http_user_agent 變量中存放客戶端的代理信息
  • $http_cookie變量中存放客戶端的cookie信息
  • $limit_rate 變量中存放Nginx服務(wù)器對(duì)網(wǎng)絡(luò)連接速率的限制,也就是Nginx 配置中 limit_rate指令的配置值
  • $remote_addr 變量中存放了客戶端的地址
  • $remote_port 變量中存放了客戶端與服務(wù)器建立連接的端口號(hào)
  • $remote_user 變量中存放了客戶端的用戶名
  • $request_body_file變量中存放了發(fā)給后端服務(wù)器的本地文件資源的名稱
  • $request_method 變量中存放了客戶端的請(qǐng)求方式,如""GET”、“POST等
  • $request_filename 變量中存放了當(dāng)前請(qǐng)求的資源文件的路徑名
  • $request_uri 變量中存放了當(dāng)前請(qǐng)求的URI,并且?guī)д?qǐng)求指令
  • $query_string 與變量Sargs含義相同
  • $scheme變量中存放了客戶端請(qǐng)求使用的協(xié)議,比如“http”、“https”和“ftp”等
  • $server_protocol變量中存放了客戶端請(qǐng)求協(xié)議的版本,比如“HTTP1.0”、"HTTP/1.1”等
  • $server_addr 變量中存放了服務(wù)器的地址
  • $server_name 變量中存放了客戶端請(qǐng)求到達(dá)的服務(wù)器的名稱
  • $server _port 變量中存放了客戶端請(qǐng)求到達(dá)的服務(wù)器的端口號(hào)
  • uri與變量uri與變量uri與變量document_uri含義相同

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論