Nginx 運(yùn)維筆記

Nginx 配置文件的各個(gè)層次

----

- main: 主要配置踱侣,如 `error log`,`workprosses` 等等

- events: 事件驅(qū)動(dòng)相關(guān)內(nèi)容,比如工作方式(`poll`,`epoll` 等等)

- httpd: 關(guān)于`http` 相關(guān)的配置

- server: 虛擬主機(jī)的配置

- location: 是最靈活的配置

Nginx 啟用運(yùn)維信息( status )

----

```

server {

.... ## 其他配置項(xiàng)

location /status {

stub_status on;

access_log off;

allow 192.168.0.1; ## 允許訪問的IP

allow 192.168.0.0/24;

allow 127.0.0.1;

deny all;

}

}

```

狀態(tài)頁(yè)面各項(xiàng)數(shù)據(jù)的意義:

`active connections`: 當(dāng)前 `Nginx` 正在處理的活動(dòng)連接數(shù)

`serveraccepts handled request`: 總共處理的鏈接, 成功處理的握手次數(shù), 總共處理了多少請(qǐng)求

`reading`: `Nginx` 讀取到客戶端的 `Header` 信息數(shù)

`writing`: `Nginx` 返回給客戶端的 `Header` 信息數(shù)

`waiting`: 開啟 `keep-alive` 的情況下, 這個(gè)值 等于 `active - (reading + writing)`, 就是 `Nginx` 已經(jīng)處理完成正在等候下一次請(qǐng)求指令的駐留鏈接.

Nginx 反向代理

---

- 使用反向代理的指令是 `proxy_pass`.

```

server {

listen 80;

sever_name www.sucem.com

location /{

后端服務(wù)器

}

location /forum/ {

/* 將 http://www.sucem.com/forum 的訪問代理到

http://www.sucem.com:8080/bbs 應(yīng)用上 */

proxy_pass: http://www.sucem.com:8080/bbs/

}

}

```

**注意: 如果在 Location 中專用了模式匹配(~, ~* , ^~, = 等符號(hào))决侈,這不能在方向代理中寫 URI荒揣。 比如 不能寫 http://www.sucem.com:8080/bbs/ 只能到 http://www.sucen.com:8080 為止。Nginx會(huì)自動(dòng)根據(jù)匹配到的URI附加在網(wǎng)址最后? **

- 在反向代理中添加真實(shí)的客戶端地址

需要用到的模塊參數(shù):

- $request_uri: 請(qǐng)求的 URI

- $schema: 請(qǐng)求的模式(http, https 等)

- $server_addr: 請(qǐng)求的服務(wù)器地址

- $remote_addr:客戶端的地址

```

/* 在配置文件中配置 location权纤,在請(qǐng)求中添加首部 */

server {

....

location / {

proxy_pass: http://192.168.100.101:8080;

proxy_set_header X-Real-IP $remote_addr;

}

}

/* 配置完成之后在還需要在訪問日志中記錄該值(各個(gè)服務(wù)器記錄的方法都不一樣) */

```

Nginx 負(fù)載均衡

----

Nginx 的反向代理功能主要是由 `HttpUpstreamModule` 模塊提供的社证。

> 該模塊通過 upstream 配置塊提供簡(jiǎn)單的負(fù)載均衡功能(輪詢逼龟,最少鏈接,客戶端IP)追葡。--官方文檔

如:

```

upstream backend {

server backend1.example.com weight=5;

server backend2.example.com:8080;

server unix:/tmp/backend3;

}

server {

location / {

proxy_pass http://backend;

}

}

```

參數(shù)都比較簡(jiǎn)單腺律。不做解釋了,需要注意的是宜肉,在 server 配置項(xiàng)中匀钧,一定不能加上`http` !

- Nginx 對(duì)后端服務(wù)器進(jìn)行健康狀況檢查

1. 主要使用 server 配置項(xiàng)的兩個(gè)參數(shù): `max_fails` , `fail_timeout`

1. 如果所有的后端服務(wù)器都 down 了,這可以使用 sorry server

```

server {

listen 8080;

servername localhost;

root /web/errorpages;

index index.html;

}

upstream backend {

server backend1.example.com weight=5;

server backend2.example.com:8080;

server localhost:8080 down // down 表示這是一個(gè) sorry server

}

```

- Nginx 的 `ip_hash`

通過 `ip_hash` 將同一個(gè)客戶端始終定義到同一臺(tái)服務(wù)器上谬返, `ip_hash` 在 `upstream` 塊中定義之斯。但是使用了 `ip_hash` 以后就不能使用 `sorry server` 了

Nginx 緩存后端服務(wù)器資源

----

- Nginx 的緩存需要提供內(nèi)存空間(存放鍵和對(duì)象的元數(shù)據(jù))以及磁盤空間(用來存放真實(shí)數(shù)據(jù))

- 使用指令 `proxy_cache_path` 來創(chuàng)建緩存。

可以使用的參數(shù):

- levels:levels: 定義緩存子目錄的級(jí)別遣铝。如: 2:1 表示有2級(jí)緩存子目錄佑刷。第一層子目錄2個(gè)字符。2級(jí)子目錄1個(gè)字符酿炸。(最多有3級(jí)子目錄瘫絮,每個(gè)子目錄最多3個(gè)字符)

- keys_zone:? 給共享內(nèi)存命名。 如 keys_zone=first:20m 表示有一個(gè)名為 first 的內(nèi)存空間, 20m填硕。

- max_size: 最大的緩存空間麦萤。 如: max_size=1g

**example**

```

proxy_cache_path /nginx/cache/first levels=2:1 keys_zone=first:20m max_size=1g;

proxy_cache_valid 200 10m //緩存200響應(yīng)結(jié)果 10分鐘

server {

...

/* 添加一個(gè)響應(yīng)首部,響應(yīng)服務(wù)器地址 */

add_header X-via $server_addr;

/* 添加首部記錄緩存狀態(tài) */

add_header x_Cache $upstream_cache_status

location / {

...

proxy_cache first;

}

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扁眯,一起剝皮案震驚了整個(gè)濱河市壮莹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姻檀,老刑警劉巖命满,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異施敢,居然都是意外死亡周荐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門僵娃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腋妙,你說我怎么就攤上這事默怨。” “怎么了骤素?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵匙睹,是天一觀的道長(zhǎng)愚屁。 經(jīng)常有香客問我,道長(zhǎng)痕檬,這世上最難降的妖魔是什么霎槐? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮梦谜,結(jié)果婚禮上丘跌,老公的妹妹穿的比我還像新娘。我一直安慰自己唁桩,他們只是感情好闭树,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荒澡,像睡著了一般报辱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上单山,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天碍现,我揣著相機(jī)與錄音,去河邊找鬼米奸。 笑死昼接,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躏升。 我是一名探鬼主播辩棒,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼膨疏!你這毒婦竟也來了一睁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤佃却,失蹤者是張志新(化名)和其女友劉穎者吁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饲帅,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡复凳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灶泵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片育八。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赦邻,靈堂內(nèi)的尸體忽然破棺而出髓棋,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布按声,位于F島的核電站膳犹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏签则。R本人自食惡果不足惜须床,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渐裂。 院中可真熱鬧豺旬,春花似錦、人聲如沸芯义。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽封恰。三九已至葱弟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绑警,已是汗流浹背求泰。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留计盒,地道東北人渴频。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像北启,于是被迫代替她去往敵國(guó)和親卜朗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Nginx 配置文件的各個(gè)層次 main: 主要配置咕村,如 error log,workprosses 等等 eve...
    shjanken閱讀 858評(píng)論 0 2
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,535評(píng)論 1 41
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理场钉,服務(wù)發(fā)現(xiàn),斷路器懈涛,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 有人叫她“熟食鋪?zhàn)印惫渫颍驗(yàn)橹挥惺焓车陼?huì)把那許多顏色暖熱的肉公開陳列;又有人叫“真理”,因?yàn)閾?jù)說“真理”是赤裸裸的批钠。...
    扶留閱讀 433評(píng)論 0 0