這篇文章主要介紹了關於對於Nginx基本設定檔和變數的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
Nginx基本設定檔和變數詳解
1. 基本設定檔
/etc/nginx/nginx.conf
# nginx啟動並執行使用者user nginx;# nginx進程數,建議設定為等於CPU總核心數。worker_processes 1;# 全域錯誤記錄檔檔案名稱和所在目錄,錯誤記錄檔記錄層級[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log warn;# 進程檔案nginx.pid所在目錄pid /var/run/nginx.pid;# 一個nginx進程開啟的最多檔案描述符數目,# 理論值應該是最多開啟檔案數(系統的值ulimit -n)與nginx進程數相除,# 但是nginx分配請求並不均勻,所以建議與ulimit -n的值保持一致。# worker_rlimit_nofile 65535;events { # 參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; # epoll模型是Linux 2.6以上版本核心中的高效能網路I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 # use epoll; # 單個進程最大串連數(最大串連數 = 串連數 * 進程數) worker_connections 1024; # multi_accept on;}# http伺服器配置http { # 引入http協議的Content-Type與副檔名對應關係的檔案 include /etc/nginx/mime.types; # 預設檔案類型 default_type application/octet-stream; # 指定日誌格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # HTTP伺服器請求記錄檔的名稱和所在目錄、日誌記錄層級 access_log /var/log/nginx/access.log main; # 開啟高效檔案傳輸模式。 # sendfile指令指定nginx是否調用sendfile函數來輸出檔案,對於普通應用設為on, # 如果用來進行下載等應用磁碟IO重負載應用,可設定為off,以平衡磁碟與網路I/O處理速度,降低系統的負載。 # 注意:如果圖片顯示不正常把這個改成off。 sendfile on; # 防止網路阻塞 # tcp_nopush on; # tcp_nodelay on; # 開啟目錄列表訪問,合適下載伺服器,預設關閉。 # autoindex on; # 開啟限制IP串連數的時候需要使用 # limit_zone crawler $binary_remote_addr 10m; # 長連線逾時時間,單位是秒 keepalive_timeout 65; # gzip模組設定 # 開啟gzip壓縮輸出 # gzip on; # 最小壓縮檔大小 # gzip_min_length 1k; # 壓縮緩衝區 # gzip_buffers 4 16k; # 壓縮版本(預設1.1,前端如果是squid2.5請使用1.0) # gzip_http_version 1.0; # 壓縮等級 # gzip_comp_level 2; # 壓縮類型,預設就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。 # gzip_types text/plain application/x-javascript text/css application/xml; # gzip_vary on; # FastCGI相關參數是為了改善網站的效能:減少資源佔用,提高訪問速度。 # fastcgi_connect_timeout 300; # fastcgi_send_timeout 300; # fastcgi_read_timeout 300; # fastcgi_buffer_size 128k; # fastcgi_buffers 8 128k; # fastcgi_busy_buffers_size 128k; # fastcgi_temp_file_write_size 128k; # 允許用戶端請求的最大單檔案位元組數。 # 如果請求大於指定的大小,則NGINX發回HTTP 413(Request Entity too large)錯誤。 # 如果伺服器處理大檔案上傳,則該指令非常重要。 # client_max_body_size 20m; # 用於請求主體的緩衝區大小。 # 如果主體超過緩衝區大小,則完整主體或其一部分將寫入臨時檔案。 # 如果NGINX配置為使用檔案而不是記憶體緩衝區,則該指令會被忽略。 # 預設情況下,該指令為32位系統設定一個8k緩衝區,為64位系統設定一個16k緩衝區。 # 該指令在NGINX配置的http,server和location區塊使用。 # client_body_buffer_size 128k; # upstream abc.com { # upstream的負載平衡,weight是權重,可以根據機器配置定義權重。weigth參數表示權值,權值越高被分配到的幾率越大。 # server 192.168.10.121:80 weight=3; # server 192.168.10.122:80 weight=2; # server 192.168.10.123:80 weight=3; # } # 引入 '/etc/nginx/conf.d/' 目錄下以 '.conf' 結尾的檔案 include /etc/nginx/conf.d/*.conf; # 虛擬機器主機的配置 server { # 監聽連接埠 listen 80; # 網域名稱,可以有多個,用空格隔開 server_name localhost; # 預設編碼 # charset utf-8; # 日誌格式設定 # log_format access '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" $http_x_forwarded_for'; # 當前虛擬機器主機請求記錄檔的名稱和所在目錄、日誌記錄層級 # access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # 將伺服器錯誤頁面重新導向到靜態頁面 /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # 將 PHP 指令碼反向 Proxy到監聽 127.0.0.1:80 連接埠的Apache #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # 將 PHP 指令碼反向 Proxy到監聽127.0.0.1:9000連接埠的FastCGI伺服器 #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # 如果Apache的主目錄與nginx的相同,拒絕訪問.htaccess檔案。 #location ~ /\.ht { # deny all; #} # 圖片緩衝時間設定 # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { # expires 10d; # } # JS和CSS緩衝時間設定 # location ~ .*\.(js|css)?$ { # expires 1h; # } # 對 "/" 啟用反向 Proxy # location / { # proxy_pass http://127.0.0.1:88; # proxy_redirect off; # # 後端的Web伺服器可以通過X-Forwarded-For擷取使用者真實IP # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # # 以下是一些反向 Proxy的配置,可選。 # proxy_set_header Host $host; # # nginx跟後端伺服器連線逾時時間(代理連線逾時) # proxy_connect_timeout 90; # # 後端伺服器資料回傳時間(代理髮送逾時) # proxy_send_timeout 90; # # 串連成功後,後端伺服器回應時間(代理接收逾時) # proxy_read_timeout 90; # # 設定Proxy 伺服器(nginx)儲存使用者頭資訊的緩衝區大小 # proxy_buffer_size 4k; # # proxy_buffers緩衝區,網頁平均在32k以下的設定 # proxy_buffers 4 32k; # # 高負荷下緩衝大小(proxy_buffers*2) # proxy_busy_buffers_size 64k; # # 設定快取檔案夾大小,大於這個值,將從upstream伺服器傳 # proxy_temp_file_write_size 64k; # } }}
2. Nginx變數
HTTP請求變數
arg_參數名
:例如,$arg_userid,可以引用到請求參數userid的值
http_請求HEADER名
:例如,$http_user_agent,可以引用到要求標頭資訊User-Agent的值
sent_http_返回HEADER名
:在響應用戶端可添加header頭資訊
內建變數
Nginx內建的變數,參考Nginx文檔的Logging to syslog
自訂變數
伺服器管理員自己定義的變數
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!