userwwwwww;#
nginx
使用的使用者及使用者組
也有些人用
user
nobody
;這個使用者
worker_processes8;
#8個worker
,一般和核心數一樣
#全域性錯誤日誌(可設定日誌級別,)及pid檔案
#error_log logs/error.log; # 這是相對目錄,也可以用絕對路徑
#error_log logs/error.log notice;可選的日誌級別有 debug info notice warn error crit
#error_log logs/error.log info;
#pid logs/nginx.pid; # 指定pid存放的路徑
#指定檔案描述符數量
#worker_rlimit_nofile 51200;
#工作模式以及連線數上線
#禁止訪問
.ht***
檔案location~/
.ht}}
location 符號 規則
進來的請求url按照符號對應的命令匹配規則,
location ~ /.ht
即使匹配路徑後面汗 ht 字元的url。
符號規則
~正則匹配
~*不區分大小寫
=精確匹配
^~nginx 通過ngx_http_rewrite_module模組支援url重寫,支援if條件判斷,但是不支援else。
rewrite在server塊中執行。找到location然後在location中執行選定的rewrite指令。
nginx中,如果rewrite超過10次,就返回500了。
if中可以使用break指令。
if條件判斷:
)# return,停止處理並返回指定狀態碼給客戶端
rewrite 的格式是 rewrite regex replacement[flag];
如果乙個uri匹配指定的正規表示式regex,uri就按照replacement重寫。
rewrite按配置檔案中出現的順序執行。flags標誌可以停止繼續處理。
如果replacement以"http://"或"https://"開始,將不再繼續處理,這個重定向將返回給客戶端。
flag可以是如下引數:
最終完整的重定向url包括請求scheme(http://,https://等),請求的server_name_in_redirect和 port_in_redirec三部分 ,說白了也就是http協議 網域名稱 埠三部分組成。
upstream 定義了一組後端伺服器,可以在 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass 呼叫.
舉個例子.
upstream backend
server
match welcome
}
定義一組伺服器,可以用不同的埠號,能堅挺tcp和 unix協議.
預設採用迴圈的分配訪問策略.比如以上這個例子,每7個請求,有5個在backend1.example.com中,第二和第三個sever各乙個.
4.1 server 語法
位於upstream 上下文中
server address [parameters];
1. weight=number 設定這個server的權重. 預設1
2. max_fails=number 自動重連次數, 時間達到 fail_timeout定義的時間之後就開始重連,這是最大重連次數 預設1
3. fail_time=number 預設 10s
4. backup 設定這個伺服器為後備伺服器,只有前面的伺服器失效之後,才啟用這個伺服器
5. down 停用這個伺服器,和ip_hash 策略聯用
6. zone, hash 不懂
7, ip_hash 請求分配的策略,採用ip 雜湊的方式,同乙個使用者的請求分配到同一臺機子
8. keepalive=number 設定伺服器能保持住的最大連線數
4.2 health_check 語法
health_check 在location 的上下文中使用
health_check [parameters] 心跳檢測.其中的引數有,
1. interval=time(10s) 兩次檢測的時間間隔;
2. fails=number(1)檢測的失敗這麼多次之後就可以認為這個伺服器失效了
3. passes=number(1) 檢測到這麼多次成功之後就可以認為這個伺服器是有效的
4. uri=uri(/) 心跳檢測用的uri ;
5 match=name 如果response中包含這個match算檢測成功一次, match 可以檢測返回碼, header ,body. 預設是檢測返回碼是否是 2xx 或者 3xx;
upstream 的一組伺服器可能對應多個心跳檢測,只要乙個檢測認為某個伺服器失效,那就所有都認為其失效.
4.3 match 語法
上面提到了match . match 的上下文是http
status 200; 返回碼是200
status ! 500; 返回碼不是500
status 200 204; 返回碼是 200 或者 204
status ! 301 302; 返回碼不是 301 也不是 302
status 200-399;
status ! 400-599;
status 301-303 307;
header content-type = text/html; 頭部中包含這個
header content-type != text/html;
header connection ~ close;
header connection !~ close; 這兩個是正則匹配
header host; 頭部中包含這個'host' 字段
header ! x-accel-redirect;
body ~ "welcome to nginx!";
body !~ "welcome to nginx!";
在response中只有前 256k的資料才會參與這些匹配
4.4 queue語法
在 upstream 的上下文中
queue number [timeout] 這個是在請求的達到nginx的最大連線數時將後面進來的請求暫存到這個佇列中.
此外 upstream 中還有sticky_cookie_insert
sticky (關於cookies), upstream_conf(動態改變upstream 配置) 這些比較少用,以後再查文件.
nginx常用配置
官檔 nginx的負載均衡主要依賴這個模組 ngx http upstream module 1 安裝好nginx 192.168.1.111 2 修改egrep v nginx.conf.default nginx.conf 對其進行修改 訪問server name的時候,會找listen埠,所有...
Nginx常用配置
允許跨域 add header access control allow origin 配置 的使用者訪問認證 生成密碼檔案 htpasswd b c sitepasswd pigt password 配置訪問授權 auth basic input you user name and passwor...
nginx常用配置
其主要分為幾個模組 全域性快從開始到events塊之間的一部分內容,其作用域為全域性作用域 events塊 主要負責nginx伺服器與使用者的網路連線 常用設定 是否開啟多work process下的網路連線進行序列化 師傅允許接收多個網路連線 選取哪種驅動模型連線請求 process 最大連線數 ...