Nginx配置檔案的語法格式
在nginx的世界裡,每個Nginx模組都可以定義自己的配置指令,所以這些指令的格式五花八門。比如content_by_lua_block後跟著的是Lua語法,limit_req_zone後則跟著以空格、等號、冒號等分隔的多個選項。這些模組有沒有必然遵循的通用格式呢?如果有,那麼掌握了它,就能快速讀懂生產環境複雜的nginx.conf檔案。今天便來講解Nginx配置檔案的語法格式。
Nginx是由少量框架程式碼、大量模組構成的,其中,Nginx框架會按照特定的語法,將配置指令讀取出來,再交由模組處理。因此,Nginx框架定義了通用的語法規則,而Nginx模組則定義了每條指令的語法規則,作為初學者,如果將學習目標定為掌握所有的配置指令,方向就完全錯了,而且這是不可能完成的任務。
比如,ngx_http_lua_module模組定義了content_by_lua_block指令,只要它符合框架定義的{}塊語法規則,哪怕大括號內是一大串Lua語言程式碼,框架也會把它交由ngx_http_lua_module模組處理。因此,下面這行指令就是合法的:
content_by_lua_block {ngx.say("Hello World ")}
所以,在我看來,只要弄清楚了以下2點,就能快速掌握Nginx配置檔案,:
第一點:Nginx框架定義了每條指令的基本格式,這是所有模組必須遵守的規則,這包括以下5條語法:
透過{ }大括號作為分隔符的配置塊語法。比如http{ }、location{ }、upstream{ }等等,至於配置塊中究竟是放置Javascript語言、Lua語言還是字串、數字,這完全由定義配置塊的Nginx模組而定。
透過;分號作為分隔符的指令語法。比如root html;就開啟了靜態資源服務。
以#作為關鍵字的註釋語法。比如#pid logs/nginx.pid;指令就是不會生效的。
以$作為關鍵字的變數語法。變數是Nginx模組之間能夠互相配合的核心要素,也是Nginx與管理員之間的重要介面,透過$變數名的形式,就可以靈活控制Nginx模組的行為。
include指令可以將其他配置檔案載入到nginx.conf中,這樣可以提升配置的可維護性。例如include mime.types;語句,就將Content-Type與檔案字尾名的對映關係,放在了獨立的mime.types檔案中,降低了耦合性。
第二點:Nginx框架為了提高模組解析指令選項的效率,提供了一系列通用的工具函式,絕大多數模組都會使用它們,畢竟這降低了模組開發的難度以及使用者的學習成本。比如,當配置檔案中包含位元組數時,Nginx框架提供了ngx_conf_set_size_slot函式, 各模組透過它就可以解析以下單位:
因此,limit_req_zone指令中zone=one:10m中就定義10MB的共享記憶體,這替代了很不好理解的10485760位元組。
再比如,讀取時間可以使用以下單位:
這樣,ssl_session_cache shared:SSL:2h;指令就設定TLS會話資訊快取2小時後過期。
除以上規則外,如果編譯了pcre開發庫後,你還可以在nginx.conf中使用正規表示式,它們通常以~符號打頭。
由於每個Nginx模組都能定義獨特的指令,這讓nginx.conf變成了複雜的運維介面。在掌握了基本的配置語法,以及第三方模組定義指令時遵循的潛規則後,你就能遊刃有餘地編寫Nginx配置檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25922618/viewspace-2749615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx配置檔案語法高亮的Sublime Text擴充套件Nginx套件
- nginx rewrite語法格式Nginx
- nginx配置檔案Nginx
- Nginx 配置檔案Nginx
- 我的Nginx配置檔案Nginx
- Nginx配置檔案解析Nginx
- logstash 配置檔案語法介紹
- Nginx的配置檔案詳解Nginx
- Nginx的配置檔案說明Nginx
- 【Nginx】Nginx虛擬vhost配置檔案Nginx
- Nginx 配置檔案備忘Nginx
- Nginx配置檔案示例解析Nginx
- nginx配置檔案詳解Nginx
- 1.3.nginx配置檔案Nginx
- Gixy–分析Nginx配置檔案的工具Nginx
- 配置歸檔位置和檔案格式
- [轉]Nginx 配置檔案nginx.conf的完整配置說明Nginx
- Nginx 配置檔案 nginx.conf 詳解Nginx
- lds 檔案語法
- Nginx 配置檔案 nginx.conf 中文詳解Nginx
- /etc/nginx/nginx.conf配置檔案詳解Nginx
- Nginx配置檔案nginx.conf中文詳解Nginx
- Nginx 配置檔案引數詳解Nginx
- nginx 基本命令和檔案配置Nginx
- Nginx配置檔案詳細說明Nginx
- Nginx的nginx.conf配置檔案中文註釋說明Nginx
- 如何修改geditor的配置檔案 -好像geditor沒有文字格式的配置檔案? 要使用dconf-editor來配置- geditor自己配置編碼格式...
- 附:Nginx配置檔案nginx.conf中文詳解Nginx
- Nginx配置檔案nginx.conf中文詳解(轉)Nginx
- nginx.conf 配置檔案詳解Nginx
- nginx製作檢查配置bat檔案NginxBAT
- openresty/nginx配置多個conf檔案RESTNginx
- nginx 文件地址及配置檔案入門Nginx
- Nginx配置檔案(反向代理伺服器)Nginx伺服器
- nginx學習(二):初識配置檔案Nginx
- Nginx配置檔案nginx.conf中文詳解(總結)Nginx
- YAML檔案語法及示例YAML
- Xpath語法格式整理