三. rewrite指令
四. nginx配置詳解
五. nginx內建繫結變數
nginx是乙個高效能的http和反向**web伺服器,同時也提供了imap/pop3/smtp服務。目前大部分使用者用它來作反向**、負載均衡。
nginx的優點:
高併發效能強,官方nginx處理靜態檔案併發量為5w/s
反向**能力強(可用於負載均衡)
記憶體和cpu佔用率底
對後端服務有健康檢查功能
配置簡單且容易上手
location [
=|~|~*|^~] patt
匹配符
含義location = /url
精確匹配,只有完全匹配上才能生效
location ^~ /url
非正則字首匹配
location ~ /url
區分大小寫正則匹配
location ~* /url
不區分大小寫正則匹配
location /url
一般匹配(字首匹配)
location /
通用匹配,任何未匹配到其他location的請求都會被匹配到,相當於switch中的default
(location =
/url)
>
(location ^
~/url)
>
(location ~|~
*/url)
>
(location /url)
>
(location /
)
匹配優先順序介紹:
1)優先進行精準匹配,未成功,進行第2步
2)進行非正則字首匹配,未成功,進行第3步
3)進行正則匹配,未成功,進行第4步
4)進行一般匹配,(若匹配上多個location,返回匹配路徑最長的location),未成功,進行第5步
5)進行通用匹配,未成功,返回404錯誤。
後續更新
配置檔案 nginx.conf:
#定義nginx執行的使用者和使用者組
user www www;
#啟動程序,通常設定成和cpu的數量相等
worker_processes 8;
#為每個程序分配cpu,上例中將8個程序分配到8個cpu,當然可以寫多個,或者將乙個程序分配到多個cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#這個指令是指當乙個nginx程序開啟的最多檔案描述符數目,理論值應該是最多打
#開檔案數(ulimit -n)與nginx程序數相除,但是nginx分配請求並不是那麼均勻
#,所以最好與ulimit -n的值保持一致。
worker_rlimit_nofile 102400;
#全域性錯誤日誌
#錯誤日誌定義等級,[ debug | info | notice | warn | error | crit ]
error_log /usr/local/nginx/logs/error.log;
#pid檔案
pid /usr/local/nginx/nginx.pid;
#工作模式及連線數上限
events
#設定http伺服器,利用它的反向**功能提供負載均衡支援
http
配置檔案 vhosts.conf:
#這裡為後端伺服器wugk應用集群配置,根據後端實際情況修改即可,tdt_wugk為負載均衡名稱,可以任意指定
#但必須跟vhosts.conf虛擬主機的pass段一致,否則不能**後端的請求。weight配置權重,在fail_timeout內檢查max_fails次數,失敗則剔除均衡。
upstream tdt_wugk
#虛擬主機配置
server
# 定義錯誤提示頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html
#配置nginx動靜分離,定義的靜態頁面直接從nginx發布目錄讀取。
#php指令碼請求全部**到 fastcgi處理. 使用fastcgi預設配置.
location ~ \.php$
#設定檢視nginx狀態的位址
location /nginxstatus
}}
名稱
說明$arg_name
請求中的name引數
$args
請求中的引數
$binary_remote_addr
遠端位址的二進位制表示
$body_bytes_sent
已傳送的訊息體位元組數
請求資訊裡的」content-length
$content_type
請求資訊裡的」content-type
$document_root
針對當前請求的根路徑設定值
$document_uri
與$uri相同; 比如 /test2/test.php
$host
遠請求資訊中的」host」,如果請求中沒有host行,則等於設定的伺服器名
$hostname
機器名使用 gethostname系統呼叫的值
cookie 資訊
引用位址
客戶端**資訊
最後乙個訪問伺服器的ip位址。
相當於網路訪問路徑
$is_args
如果請求行帶有引數,返回「?」,否則返回空字串
$limit_rate
對連線速率的限制
$nginx_version
當前執行的nginx版本號
$pid worker
程序的pid
$query_string
與$args相同
$realpath_root
按root指令或alias指令算出的當前請求的絕對路徑。其中的符號鏈結都會解析成真是檔案路徑,使用 nginx 內建繫結變數
$remote_addr
客戶端ip位址
$remote_port
客戶端埠號
$remote_user
客戶端使用者名稱,認證用
$request
使用者請求
$request_body
這個變數(0.7.58+) 包含請求的主要資訊。在使用proxy_pass或fastcgi_pass指令的location中比較有意義
$request_body_file
客戶端請求主體資訊的臨時檔名
$request_completion
客如果請求成功,設為」ok」;如果請求未完成或者不是一系列請求中最後一部分則設為空
$request_filename
當前請求的檔案路徑名,比如/opt/nginx/www/test.php
$request_method
請求的方法,比如」get」、」post」等
$request_uri
請求的uri,帶引數
$scheme
所用的協議,比如http或者是https
$server_addr
伺服器位址,如果沒有用listen指明伺服器位址,使用這個變數將發起一次系統呼叫以取得位址(造成資源浪費)
$server_name
請求到達的伺服器名
$server_port
請求到達的伺服器端口號
$server_protocol
請求的協議版本,」http/1.0」或」http/1.1」
$uri
請求的uri,可能和最初的值有不同,比如經過重定向之類的
Nginx配置詳解
nginx的主要配置檔案是nginx.conf,位於安裝目錄下的nginx conf資料夾裡,主要的配置引數如下 定義nginx執行的使用者和使用者組 user nobody nobody nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,...
nginx配置詳解
定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,debug info notice warn error crit error log var log nginx error...
NGINX配置詳解
nginx 配置檔案 user nginx 使用者worker processes 8 工作程序,根據硬體調整,大於等於cpu核數 error log logs nginx error.log crit 錯誤日誌 pid logs nginx.pid pid放置的位置 worker rlimit n...