ZT nginx配置詳解

2021-09-01 10:03:30 字數 4351 閱讀 7961

nginx 配置檔案詳解

user nginx ;

#使用者worker_processes 8;

#工作程序,根據硬體調整,大於等於cpu核數

error_log logs/nginx_error.log crit;

#錯誤日誌

pid logs/nginx.pid;

#pid放置的位置

worker_rlimit_nofile 204800;

#指定程序可以開啟的最大描述符

這個指令是指當乙個nginx程序開啟的最多檔案描述符數目,理論值應該是最多開啟文

件數(ulimit -n)與nginx程序數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n 的值保持一致。

現在在linux 2.6核心下開啟檔案開啟數為65535,worker_rlimit_nofile就相應應該填寫65535。

這是因為nginx排程時分配請求到程序並不是那麼的均衡,所以假如填寫10240,總併發量達到3-4萬時就有程序可能超過10240了,這時會返回502錯誤。

events

#設定http伺服器,利用它的反向**功能提供負載均衡支援

nginx的upstream目前支援4種方式的分配

1、輪詢(預設)

每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。

2、weight

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。

例如:upstream bakend

2、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。

例如:upstream bakend

3、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream backend

4、url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取時比較有效。

例:在upstream中加入hash語句,server語句中不能寫入weight等其他的引數,hash_method是使用的hash演算法

upstream backend

tips:

upstream bakend

在需要使用負載均衡的server中增加

每個裝置的狀態設定為:

1.down表示單前的server暫時不參與負載

2.weight預設為1.weight越大,負載的權重就越大。

3.max_fails:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream模組定義的錯誤

4.fail_timeout:max_fails次失敗後,暫停的時間。

5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

nginx支援同時設定多組的負載均衡,用來給不用的server來使用。

client_body_in_file_only設定為on 可以講client post過來的資料記錄到檔案中用來做debug

client_body_temp_path設定記錄檔案的目錄 可以設定最多3層目錄

location對url進行匹配.可以進行重定向或者進行新的** 負載均衡

server

#配置虛擬機器

#設定檢視nginx狀態的位址

location ~ /\.ht

#禁止訪問.ht***檔案

}注釋:變數

ngx_http_core_module模組支援內建變數,他們的名字和apache的內建變數是一致的。

首先是說明客戶請求title中的行,例如$http_user_agent,$http_cookie等等。

此外還有其它的一些變數

$args此變數與請求行中的引數相等

$content_length等於請求行的「content_length」的值。

$content_type等同與請求頭部的」content_type」的值

$document_root等同於當前請求的root指令指定的值

$document_uri與$uri一樣

$host與請求頭部中「host」行指定的值或是request到達的server的名字(沒有host行)一樣

$limit_rate允許限制的連線速率

$request_method等同於request的method,通常是「get」或「post」

$remote_addr客戶端ip

$remote_port客戶端port

$remote_user等同於使用者名稱,由ngx_http_auth_basic_module認證

$request_filename當前請求的檔案的路徑名,由root或alias和uri request組合而成

$request_body_file

$request_uri含有引數的完整的初始uri

$query_string與$args一樣

$sheeme http模式(http,https)盡在要求是評估例如

rewrite ^(.+)$ $sheme: redirect;

$server_protocol等同於request的協議,使用「http/或「http/

$server_addr request到達的server的ip,一般獲得此變數的值的目的是進行系統呼叫。為了避免系統呼叫,有必要在listen指令中指明ip,並使用bind引數。

$server_name請求到達的伺服器名

$server_port請求到達的伺服器的埠號

$uri等同於當前request中的uri,可不同於初始值,例如內部重定向時或使用index

Serv U配置詳解

serv u的目錄檔案結構說明 servudaemon.exe serv u的服務程式,主檔案 servudaemon.ini serv u的配置檔案,記錄使用者資訊,伺服器引數 seruadmin.exe serv u管理介面 servuadmin.ini serv u管理介面配置檔案 servu...

CVS for LINUX配置詳解

cvs伺服器的安裝 1。檢視你的作業系統上是否安裝了cvs rpm qa grepcvs 2。建立cvs使用者組 groupaddcvs 3。建立cvs組的cvsroot使用者和所屬的目錄 useradd gcvs d cvsroot cvsroot 4。為cvsroot使用者新增密碼 passwd...

LAMP配置詳解

lamp 就是linux apache mysql php用來web開發的經濟實惠的東東,完全開源,很值得期待!廢話說了這麼多,總結一下,我的電腦測試已經通過。1.linux 我的作業系統是在vmware虛擬機器下安裝的ubuntu10.04 10.04的gnome挺不成熟的,上次我網上找了個開機主...