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; ## 允許訪問(wèn)的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: 開(kāi)啟 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 的訪問(wèn)代理到
            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;
        }
    }
    
    /* 配置完成之后在還需要在訪問(wèn)日志中記錄該值(各個(gè)服務(wù)器記錄的方法都不一樣) */
    

Nginx 負(fù)載均衡

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

該模塊通過(guò) 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

    2. 如果所有的后端服務(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

    通過(guò) ip_hash 將同一個(gè)客戶端始終定義到同一臺(tái)服務(wù)器上惯殊, ip_hashupstream 塊中定義。但是使用了 ip_hash 以后就不能使用 sorry server

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

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

  • 使用指令 proxy_cache_path 來(lái)創(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)離奇詭異赖晶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)辐烂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門遏插,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人纠修,你說(shuō)我怎么就攤上這事胳嘲。” “怎么了扣草?”我有些...
    開(kāi)封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵了牛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我辰妙,道長(zhǎng)鹰祸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任上岗,我火速辦了婚禮福荸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肴掷。我一直安慰自己敬锐,他們只是感情好背传,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著台夺,像睡著了一般径玖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颤介,一...
    開(kāi)封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天梳星,我揣著相機(jī)與錄音,去河邊找鬼滚朵。 笑死冤灾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辕近。 我是一名探鬼主播韵吨,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼移宅!你這毒婦竟也來(lái)了归粉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤漏峰,失蹤者是張志新(化名)和其女友劉穎糠悼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(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
  • 文/蒙蒙 一包帚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧运吓,春花似錦渴邦、人聲如沸疯趟。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)信峻。三九已至,卻和暖如春瓮床,著一層夾襖步出監(jiān)牢的瞬間盹舞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工隘庄, 沒(méi)想到剛下飛機(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`,`workpros...
    shjanken閱讀 3,618評(píng)論 0 3
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)菇肃,斷路器地粪,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,535評(píng)論 1 41
  • 上一篇《WEB請(qǐng)求處理一:瀏覽器請(qǐng)求發(fā)起處理》,我們講述了瀏覽器端請(qǐng)求發(fā)起過(guò)程琐谤,通過(guò)DNS域名解析服務(wù)器IP蟆技,并建...
    七寸知架構(gòu)閱讀 80,990評(píng)論 21 356
  • 我把影子藏進(jìn)河里 連同我的驕傲、欲望與魂靈 從此 不再理世間的人與鬼 我亦不再知世間的一件事 我是我自己的王 只做...
    伍月的晴空閱讀 554評(píng)論 6 12