nginx

nginx

master/worker

master:配置文件分析和加載、管理worker、平滑升級;

worker:處理用戶請求;

cache loader, cache manager:緩存加載和緩存管理

user

Syntax: user user [group];

              Default: user nobody nobody;

              Context: main

pid /PATH/TO/PID_FILE;

指定存儲nginx主進程進程號碼的文件路徑;

include file | mask;

指明包含進來的其它配置文件片斷;

load_module file;

性能優化相關的配置:

            1worker_processes number | auto;

                    worker進程的數量;通常應該等于小于當前主機的cpu的物理核心數;

                            auto:當前主機物理CPU核心數;

            2、worker_cpu_affinity cpumask …;

                    worker_cpu_affinity auto [cpumask];

                            CPU MASK

                                00000000

                                000000010CPU

                                000000101CPU

      `    3、worker_priority number;

                    指定worker進程的nice值,設定worker進程優先級;[-20,20]

            4、worker_rlimit_nofile number;

                    worker進程所能夠打開的文件數量上限;

調試、定位問題:

            1、daemon on|off;

                是否以守護進程方式運行Nignx;

            2master_process on|off;

                是否以master/worker模型運行nginx;默認為on

            3、error_log file [level];

                worker_connections number;

                每個worker進程所能夠打開的最大并發連接數數量;

use method;

指明并發連接請求的處理方法;

accept_mutex on | off;

處理新的連接請求的方法;on意味著由各worker輪流處理新請求,Off意味著每個新請求的到達都會通知所有的worker進程;

server { … }

配置一個虛擬主機;

listen PORT監聽端口

server_name name …;

指明虛擬主機的主機名稱;后可跟多個由空白字符分隔的字符串;

tcp_nodelay on | off;

keepalived模式下的連接是否啟用TCP_NODELAY選項;

tcp_nopush on|off;

sendfile模式下,是否啟用TCP_CORK選項;

sendfile on | off;

是否啟用sendfile功能;

root path;

設置web資源路徑映射;

location [ = | ~ | ~* | ^~ ] uri { … }

設置配置取決于請求URI 

alias path;

定義路徑別名,文檔映射的另一種機制;

index file …;

默認資源;http, server, location;

error_page code … [=[response]] uri;

定義將顯示指定錯誤的URI

try_files file … uri;

定義客戶端請求的相關配置

keepalive_timeout timeout [header_timeout];

設定保持連接的超時時長,0表示禁止長連接;默認為75s;

keepalive_requests number;

在一次長連接上所允許請求的資源的最大數量,默認為100;

keepalive_disable none | browser …;

對哪種瀏覽器禁用長連接;

send_timeout time;

向客戶端發送響應報文的超時時長,此處,是指兩次寫操作之間的間隔時長;

client_body_buffer_size size;

用于接收客戶端請求報文的body部分的緩沖區大?。荒J為16k;

client_body_temp_path path [level1 [level2 [level3]]];

設定用于存儲客戶端請求報文的body部分的臨時存儲路徑及子目錄結構和數量;

limit_rate rate;

限制響應給客戶端的傳輸速率,單位是bytes/second0表示無限制;

limit_except method … { … }

限制對指定的請求方法之外的其它方法的使用客戶端;

aio on | off | threads[=pool];

是否啟用aio功能;

directio size | off;

Linux主機啟用O_DIRECT標記,此處意味文件大于等于給定的大小時使用,例如directio 4m;

open_file_cache_valid time;

緩存項有效性的檢查頻率;默認為60s;

open_file_cache_min_uses number;

open_file_cache指令的inactive參數指定的時長內,至少應該被命中多少次方可被歸類為活動項;

open_file_cache_errors on | off;

是否緩存查找時發生錯誤的文件一類的信息;

ngx_http_access_module模塊:

實現基于ip的訪問控制功能

allow address | CIDR | unix: | all;白名單

deny address | CIDR | unix: | all;黑名單

ngx_http_auth_basic_module模塊

ngx_http_stub_status_module模塊

用于輸出nginx的基本狀態信息;

ngx_http_log_module模塊

他的ngx_http_log_module模塊以指定的格式寫入請求日志

log_format name string …;

string可以使用nginx核心模塊及其它模塊內嵌的變量;

access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

訪問日志文件路徑,格式及相關的緩沖的配置;

                buffer=size

                flush=time

open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

緩存各日志文件相關的元數據信息;

max:緩存的最大文件描述符數量;

min_uses:在inactive指定的時長內訪問大于等于此值方可被當作活動項;

inactive:非活動時長;

valid:驗正緩存中各緩存項是否為活動項的時間間隔;

gzip on | off;

啟用或禁用響應的gzipping .

gzip_comp_level level;

設置響應的gzip壓縮級別??山邮艿闹翟?/span>19之間

gzip_disable regex …;

禁用gzipping oef響應請求與“用戶代理”頭字段匹配任何指定的正則表達式

gzip_min_length length;

啟用壓縮功能的響應報文大小閾值;

gzip_buffers number size;

支持實現壓縮功能時為其配置的緩沖區數量及每個緩存區的大?。?/p>

gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any …;

nginx作為代理服務器接收到從被代理服務器發送的響應報文后,在何種條件下啟用壓縮功能的;

off:對代理的請求不啟用

no-cache, no-store,private:表示從被代理服務器收到的響應報文首部的 Cache-Control的值為此三者中任何一個,則啟用壓縮功能;

gzip_types mime-type …;

壓縮過濾器,僅對此處設定的MIME類型的內容啟用壓縮功能;

sl on | off;

為給定的虛擬服務器啟用HTTPS協議

ssl_certificate file;

當前虛擬主機使用PEM格式的證書文件;

ssl_certificate_key file;

當前虛擬主機上與其證書匹配的私鑰文件;

ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];

支持ssl協議版本,默認為后三個;

ssl_session_cache off | none | [builtin[:size]] [shared:name:size];

builtin[:size]:使用OpenSSL內建的緩存,此緩存為每worker進程私有;

[shared:name:size]:在各worker之間使用一個共享的緩存;

ssl_session_timeout time;

客戶端一側的連接可以復用ssl session cache中緩存 的ssl參數的有效時長;

原創文章,作者:忠神通,如若轉載,請注明出處:http://www.www58058.com/78254

(0)
忠神通忠神通
上一篇 2017-06-19 14:48
下一篇 2017-06-19 16:15

相關推薦

  • corosync v2 + pacemaker + crmsh 實現mariadb高可用

    高可用mariadb拓撲圖 一、設計前提     1、時間同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主機對應的IP地址解析可以正常工作, 主機名要與命令#uname -n 所得的結果一致   &…

    Linux干貨 2016-08-28
  • 第四周

    第四周 1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 [root@node1 ~]# cp -r /etc/skel/ /home/tuser1 [root@node1 ~]# chmod -R go= /home/tuser1 [root@node1 ~]# ls -…

    Linux干貨 2017-07-26
  • 我的linux學習方法

    目前記住Linux單詞命令過于困難,現在主要記住linux的命令的作用及用處,不記得單詞可以百度查找做多了自然就記住了。

    Linux干貨 2018-03-17
  • 馬哥教育網絡班19期+第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     網橋用來連接兩個不同的網絡間的設備;集線器的作用是把接受的信號放大,從另一個端口再穿法出去,說白了就是延長網絡的傳輸距離;   二層交換機工作在數據鏈路層,根據源和目的MAC地址進行數據轉發;三層交換機就是具有部分路由器功能的交換機,三層交換…

    Linux干貨 2016-07-07
  • Linux系統管理基礎

        一、Linux系統初識             1、用戶界面           &nbsp…

    Linux干貨 2015-04-14
  • sed與vim淺析

    sed與vim sed Stream EDitor, 行編輯器,sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。…

    Linux干貨 2016-08-10
欧美性久久久久