Nginx詳解三: 配置基礎(chǔ)

經(jīng)常聽人說到一些術(shù)語汇跨,如反向代理务荆,那么什么是反向代理,如果有反向那是不是也有正向? 什么又是正向代理呢穷遂?

什么是正向和反向代理

正向代理

先理解下正向代理
所謂正向代理類似一個跳板機, 知道自己想要訪問的資源是什么 只不過先連接一個跳板機, 然后通過跳板機連接資源, 最后原路返回得到結(jié)果.


正向代理

反向代理

反向代理就是將客戶端請求到一個代理服務(wù)器, 客戶端對代理是透明的, 客戶端也不知道訪問的是一個代理服務(wù)器.
代理服務(wù)器來接受internet請求, 然后分發(fā)到內(nèi)部網(wǎng)絡(luò)上的服務(wù)器, 并將內(nèi)部網(wǎng)絡(luò)服務(wù)器得到的結(jié)果返回給internet請求連接的客戶端, 雖然后端可能有很多機器在支撐 但是對外表現(xiàn)只有一個服務(wù)器.


反向代理

總結(jié)一句話 正向代理隱藏真實客戶端函匕,反向代理隱藏真實服務(wù)端.

反向代理的作用

PS: 摘自wiki
對客戶端隱藏伺服器(叢集)的IP位址
安全:作為應(yīng)用層防火墻,為網(wǎng)站提供對基于Web的攻擊行為(例如DoS/DDoS)的防護蚪黑,更容易排查惡意軟體等
為后端伺服器(叢集)統(tǒng)一提供加密和SSL加速(如SSL終端代理)
負載均衡盅惜,若伺服器叢集中有負荷較高者,反向代理通過URL重寫忌穿,根據(jù)連線請求從負荷較低者獲取與所需相同的資源或備援
對于靜態(tài)內(nèi)容及短時間內(nèi)有大量存取請求的動態(tài)內(nèi)容提供快取服務(wù)
對一些內(nèi)容進行壓縮抒寂,以節(jié)約頻寬或為網(wǎng)路頻寬不佳的網(wǎng)路提供服務(wù)
減速上傳
為在私有網(wǎng)路下(如區(qū)域網(wǎng)路)的伺服器叢集提供NAT穿透及外網(wǎng)發(fā)布服務(wù)
提供HTTP存取認證[2]
突破互聯(lián)網(wǎng)封鎖

保證內(nèi)網(wǎng)安全

Nginx可以使用反向代理提供WAF功能,阻止web攻擊.
并且可以只對外暴露一個端口, 讓內(nèi)容不會讓各種服務(wù)對外暴露 減少被攻擊的可能性.

負載均衡

后端服務(wù) 一臺機器能撐住的請求量是有限的 比如百度這種后端有成千上外服務(wù)器 不能讓用戶看心情 指定訪問某一臺 所以由負載均衡統(tǒng)一處理

Nginx提供的負載均衡策略有2種:內(nèi)置策略和擴展策略掠剑。
內(nèi)置策略為輪詢屈芜,加權(quán)輪詢,Ip hash朴译。
擴展策略井佑,就十分奇妙了,只有你想不到的沒有他做不到的眠寿,可以參照所有的負載均衡算法躬翁,給他一一找出來做實現(xiàn)。

web緩存

Nginx可以對不同的文件做不同的緩存處理澜公,配置靈活姆另,并且支持FastCGI_Cache喇肋,主要用于對FastCGI的動態(tài)程序進行緩存。配合著第三方的ngx_cache_purge迹辐,對制定的URL緩存內(nèi)容可以的進行增刪管理蝶防。

簡單配置

幾個注意點
在 nginx.conf 的注釋符號為: #
每個指令必須有分號結(jié)束
如果發(fā)現(xiàn)好多東西都寫在一個配置文件放不下 可以拆開寫 然后使用 include 引入配置文件

nginx 文件結(jié)構(gòu)

#全局塊
... 

#events塊
events { 
   ...
}

#http塊
http {
    #http全局塊
    ... 
    
    #server塊
    server { 
        
        #server全局塊
        ... 
        
        #location塊
        location [PATTERN] 
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    
    server
    {
      ...
    }
}

這里給出一個簡單的代理塊

 # 負載均衡 默認輪詢方式 ABABABABAB請求
upstream backend {
    server 192.168.0.1:8081;
    server 192.168.0.2:8081;
}

server {
    # 監(jiān)聽80端口
    listen 80;
    # 定義名稱
    server_name localhost;
    # 定義日志地址
    access_log logs/host.access.log localhost;

    # location可以進行正則匹配,應(yīng)該注意正則的幾種形式以及優(yōu)先級
    location / {
        # root說明是靜態(tài)資源明吩,可以由Nginx進行返回
        root html
        index index.html
    }

    location / {
        # root說明是靜態(tài)資源间学,可以由Nginx進行返回
        proxy_pass http://backend;
        health_check;
    }

}

塊描述

  • 全局塊: 配置影響nginx全局的指令。一般有運行nginx服務(wù)器的用戶組印荔,nginx進程pid存放路徑低葫,日志存放路徑,配置文件引入仍律,允許生成worker process數(shù)等嘿悬。
  • events塊:配置影響nginx服務(wù)器或與用戶的網(wǎng)絡(luò)連接。有每個進程的最大連接數(shù)水泉,選取哪種事件驅(qū)動模型處理連接請求善涨,是否允許同時接受多個網(wǎng)路連接,開啟多個網(wǎng)絡(luò)連接序列化等草则。
  • http塊:可以嵌套多個server钢拧,配置代理,緩存炕横,日志定義等絕大多數(shù)功能和第三方模塊的配置源内。如文件引入,mime-type定義份殿,日志自定義膜钓,是否使用sendfile傳輸文件,連接超時時間卿嘲,單連接請求數(shù)等呻此。
  • server塊:配置虛擬主機的相關(guān)參數(shù),一個http中可以有多個server腔寡。
  • location塊:配置請求的路由,以及各種頁面的處理情況掌唾。

幾個常見配置項:

  • $remote_addr與 $http_x_forwarded_for 用以記錄客戶端的ip地址放前;
  • $remote_user :用來記錄客戶端用戶名稱;
  • $time_local : 用來記錄訪問時間與時區(qū)糯彬;
  • $request : 用來記錄請求的url與http協(xié)議凭语;
  • $status : 用來記錄請求狀態(tài);成功是200撩扒;
  • $body_bytes_s ent :記錄發(fā)送給客戶端文件主體內(nèi)容大兴迫印吨些;
  • $http_referer :用來記錄從那個頁面鏈接訪問過來的;
  • $http_user_agent :記錄客戶端瀏覽器的相關(guān)信息炒辉;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豪墅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子黔寇,更是在濱河造成了極大的恐慌偶器,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缝裤,死亡現(xiàn)場離奇詭異屏轰,居然都是意外死亡,警方通過查閱死者的電腦和手機憋飞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門霎苗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人榛做,你說我怎么就攤上這事唁盏。” “怎么了瘤睹?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵升敲,是天一觀的道長。 經(jīng)常有香客問我轰传,道長驴党,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任获茬,我火速辦了婚禮港庄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恕曲。我一直安慰自己鹏氧,他們只是感情好,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布佩谣。 她就那樣靜靜地躺著把还,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茸俭。 梳的紋絲不亂的頭發(fā)上吊履,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音调鬓,去河邊找鬼艇炎。 笑死,一個胖子當著我的面吹牛腾窝,可吹牛的內(nèi)容都是我干的缀踪。 我是一名探鬼主播居砖,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驴娃!你這毒婦竟也來了奏候?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤托慨,失蹤者是張志新(化名)和其女友劉穎鼻由,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厚棵,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蕉世,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了婆硬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狠轻。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖彬犯,靈堂內(nèi)的尸體忽然破棺而出向楼,到底是詐尸還是另有隱情,我是刑警寧澤谐区,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布湖蜕,位于F島的核電站,受9級特大地震影響宋列,放射性物質(zhì)發(fā)生泄漏昭抒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一炼杖、第九天 我趴在偏房一處隱蔽的房頂上張望灭返。 院中可真熱鬧,春花似錦坤邪、人聲如沸熙含。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怎静。三九已至,卻和暖如春黔衡,著一層夾襖步出監(jiān)牢的瞬間消约,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工员帮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人导饲。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓捞高,卻偏偏與公主長得像氯材,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子硝岗,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

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