對nginx的一點理解
nginx是一個優秀的HTTP和反向代理伺服器,一個通用的TCP/UDP代理伺服器,一個郵件代理伺服器。
nginx最麻煩的地方nginx在於它的配置。nginx由一些模塊組成,每個模塊有著一些命令,這些命令控制模塊的行為。然後nginx的配置文件主要分成四部分:main(全局配置)、server(主機設置)、upstream(上游伺服器設置,主要為反向代理和、負載均衡作相關設置)、location(URL匹配特定位置後的設置),其中他們有著一些繼承關係:server繼承main,upstream繼承server,upstream則誰都沒有繼承也沒有被繼承。
一、nginx配置文件
nginx.conf是nginx的配置文件,位置在nginx/conf/nginx.conf,下圖示例就是配置文件中的一部分:
可以通過gzip進行壓縮功能設置,http_proxy設置http代理相關的配置等…
二、main全局配置
work_processes:設置worker角色的工作進程的個數,master進程是分配並請求給worker處理。
worker_cpu_affinity:通過設置cpu粘性來減低多cpu帶來的資源的損耗。
work_connections:設置每個worker能並發處理的連接數。
work_rlimit_nofile:設置worker能打開的最大文件數限制。
use epoll:是否使用epoll事件模型。
三、http配置
sendfile on:開啟高效文件傳輸模式。
keeplive_timeout:長連接文件超時設置。
send_timeout:響應超時關閉連接設置。
client_max_body_size:允許客戶端請求的最大單文件位元組數。
client_body_buffer_size:緩衝區代理用戶端請求最大的位元組數。
四、Server配置
listen:監聽埠。
server_name:伺服器名。
location配置
proxy_pass http:/backend:請求轉向backend定義的服務列表,即反向代理,對應upstream負載均衡。
五、location
六、Rewrite
rewrite是nginx中一個極為重要的功能,它主要的作用是提供一個全局變數或者一個自己設置的變數結合正則表達式和標誌位置實現url的重寫和重定向。rewrite只能放在server{}和location{}中,並且只對域名後除去傳遞參數外的字元起作用。看起來nginx中的location和rewrite的功能都是實現跳轉,但是其實原理是有區別的,rewrite主要更改路徑進行重寫重定向,而location是 對一類路徑作控制訪問或者反向代理,實現代理到其他機器上等…
推薦閱讀: