nginx優化之nginx的配置檔案詳解
阿新 • • 發佈:2021-07-10
目錄
前言
預設的nginx伺服器配置檔案都存放在安裝目錄conf中,主配置檔名為nginx.conf,下面我們來看看nginx的配置檔案內容和一些基本的配置方法。
一個完整nginx配置檔案展示
worker_processes 1; #全域性生效 events { worker_connections 1024; #在events部分中生效 } http { include mime.types ; #以下指令在http部分中生效 default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { #以下指令在http的server部分中生效 listen 80; server_name localhost; location / { #以下指令在http/server的location中生效 root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location - /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
注意:在nginx配置中,還包括註釋內容,註釋標誌位“#”。
nginx檔案配置的結構
初始的nginx伺服器主配置是比較長的,不過結構和內容還是比較清晰的,以下我們分為幾個小節進行分析介紹。通過上面的配置檔案內容分,我們可以總結出以下nginx.conf的基本結構:
... #全域性快 events #events塊 { ... } http #http塊 { ... #http全域性塊 server #server塊 { ... #server全域性塊 location [PATTERN] #location塊 { ... } location [PATTERN] #location塊 { ... } } server #server塊 { ... } ... #http塊 }
通過上圖,我們可以看出,nginx主要有三塊組成,分別是全域性塊,events塊和http塊;在http塊中,又包含http全域性塊,多個server塊;每個server塊中,可以包含server全域性塊和多個location塊.
在同一塊配置中巢狀的配置塊,各個之間不存在次序關係.
nginx詳細配置資訊
以下是一個nginx的完整配置檔案,本節我們將以下面的配置檔案為主解析nginx各個模組的引數已經配置,在完成解析後測試nginx服務。
#################### 全域性塊 開始 #################### #配置允許執行nginx伺服器的使用者和使用者組 user root root; #配置允許nginx程序生成的worker processes數 worker processes 3; #配置允許nginx伺服器執行對錯誤日誌存放路徑 error_log logs/error.log; #配置nginx伺服器執行時的pid檔案存放路徑和名稱 pid nginx.pid; #################### 全域性塊 結束 #################### #################### server塊 開始 #################### events { #配置事件驅動模型 use epoll; #配置最大連線數 worker_connections 1024; } #################### server塊 結束 #################### #################### http塊 開始 #################### http { # 定義MIME-Type include mime.types; default_type application/octet-stream; #配置允許使用sendfile方式傳輸 sendfile on; #配置連線超時時間 keepalive_timeout 65; #配置請求處理日誌的格式 log_format access.log; '$remote_addr - [$time_local]-"$request"-"$http_user_agent"'; #################### server塊 開始 #################### #配置虛擬主機myServer1 server { #配置監聽埠和主機名稱(基於名稱) listen 8081; server_name myServer1; #配置請求處理日誌存放路徑 access_log /myweb/server1/log/access.log; #配置錯誤頁面 error_page 404 /404.html; #配置處理/server1/location1請求的location location /server/location1 { root /myweb; index index.svrl-locl.htm; } #配置處理/server1/location2請求的location location /server1/location2 { root /myweb; index index.svrl-loc2.htm; } } #配置虛擬主機myServer2 server { listen 8082; server_name 192.168.1.3; access_log /myweb/server1/log/access.log; #對錯誤頁面404.html做了定向配置 error_page 404 /404.html; location /server2/location1 { root /myweb; index index.svr2-locl.htm;W } location /svr2/loc2 { #對location的URL進行更改 alias /myweb/server2/location2/; index index.svr2-loc2.htm; } #配置錯誤頁面轉向 location = /404.html { root /myweb/; index 404.html; } } #################### server塊 結束 #################### } #################### http塊 結束 ####################