[Nginx]:基于Nginx的中間件架構(gòu)一

一勋拟、nginx特性

1、IO

2妈候、輕量級

3敢靡、CPU親和(affinity)

cpu親和:是一種把CPU核心和nginx工作進程綁定方式,把每個worker進程固定在一個cpu上執(zhí)行苦银,減少切換的cachemiss,獲得良好的性能啸胧。

4、sendfile

處理靜態(tài)文件效率很高幔虏,因為他的傳輸機制是:sendfile纺念。

對比之前httpserver的傳輸文件。httpserver傳輸機制

sendfile.png

文件--》操作系統(tǒng)內(nèi)核空間-->用戶空間--》socket;響應給用戶想括。 發(fā)生多次切換

文件 其實不需要經(jīng)過用戶空間(處理邏輯)陷谱,直接就可以通過內(nèi)核空間傳輸。sendfile就是只通過內(nèi)核空間 進行傳輸瑟蜈。


二烟逊、nginx快速搭建

參考官方文檔介紹

三、nginx的目錄和配置語法

基礎(chǔ)參數(shù)使用

省略

四铺根、Http請求

http請求.png

請求報文:

request- 包括請求行宪躯、請求頭部、請求數(shù)據(jù)

response-包括狀態(tài)行位迂、消息報頭访雪、響應正文

下面來查詢一下一次請求的內(nèi)容信息。curl -v http://www.imooc.com

[root@localhost conf]# curl -v http://www.imooc.com    
* About to connect() to www.imooc.com port 80 (#0)
*   Trying 117.121.101.40...
* Connected to www.imooc.com (117.121.101.40) port 80 (#0)
> GET / HTTP/1.1                //... >發(fā)起request請求  請求方式掂林,請求協(xié)議
> User-Agent: curl/7.29.0       //... request請求的head內(nèi)容
> Host: www.imooc.com
> Accept: */*
>                               //... < response  服務端響應的內(nèi)容
< HTTP/1.1 301 Moved Permanently        //  301  響應的狀態(tài)
< Server: nginx
< Date: Mon, 14 May 2018 08:38:35 GMT
< Content-Type: text/html
< Content-Length: 178
< Connection: keep-alive
< Location: https://www.imooc.com
< 
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
* Connection #0 to host www.imooc.com left intact
五臣缀、nginx日志類型

暫且省略,參考官網(wǎng)

六党饮、nginx模塊講解

1. nginx官方模塊
http_stub_status_module
random_index_module
Syntax:random_index on | off;
Default:random_index off;
Context:location
http_sub_module :http內(nèi)容替換 (有多個語法)
Syntax:sub_filter string replacement;
Default:-
Context:http,server,location
2.第三方模塊

七肝陪、nginx的請求限制

連接頻率限制 : limit_conn_module

請求頻率限制 : limit_req_module

1.1連接與請求的原理
http協(xié)議的連接與請求.png

建立在TCP協(xié)議之上。 TCP三次請求之后刑顺,才能進行http之間連接請求氯窍。最后在通過客戶端與服務端之間第三方包來回傳輸饲常。

http協(xié)議版本.png

HTTP請求建立在一次TCP連接基礎(chǔ)上

一次TCP請求至少產(chǎn)生一次HTTP請求,當然可以產(chǎn)生多次HTTP請求

1.2 nginx對http請求連接的限制語法
Syntax:limit_conn_zone key zone=name:size;
Default:-
Context:http
Syntax:limit_conn_zone number;
Default:-
Context:http,server,location
1.3請求限制
Syntax:limit_req_zone key zone=name:size rate=rate;
Default:-
Context:http
Syntax:limit_req zone=name [burst=number][nodelay];
Default:-
Context:http,server,location

八狼讨、nginx的訪問控制

1贝淤、實現(xiàn)訪問控制的基本方式

? 基于IP的訪問控制 http_access_module

? 基于用戶的信任登錄 http_auth_basic_module

2、http_access_module

    Syntax:allow address|CIDR|unix:|all;
    Default:-
    Context:http,server,location,limit_except
    Syntax:deny address|CIDR|unix:|all;
    Default:-
    Context:http,server,location,limit_except

http_access_module 配置

http_access_module 局限性

? 只能通過remote_addr來信任政供。

優(yōu)化

3播聪、http_x_forwarded_for

記錄過程和ip地址

http_x_forwarder_for.png

http_x_forwarded_for=ClientIP,Proxy(1)IP,Proxy(2)IP... ...

4、http_access_module局限性

方法一布隔、采用別的HTTP信息控制訪問离陶,如:HTTP_X_FORWARD_FOR

方法二、結(jié)合geo模塊作(后面詳細記錄)

方法三衅檀、通過HTTP自定義變量傳遞

后續(xù)待更新招刨,整理!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哀军,一起剝皮案震驚了整個濱河市沉眶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杉适,老刑警劉巖谎倔,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猿推,居然都是意外死亡片习,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門彤守,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毯侦,“玉大人,你說我怎么就攤上這事具垫〕蘩耄” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵筝蚕,是天一觀的道長卦碾。 經(jīng)常有香客問我,道長起宽,這世上最難降的妖魔是什么洲胖? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坯沪,結(jié)果婚禮上绿映,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好叉弦,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布丐一。 她就那樣靜靜地躺著,像睡著了一般淹冰。 火紅的嫁衣襯著肌膚如雪库车。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天樱拴,我揣著相機與錄音柠衍,去河邊找鬼。 笑死晶乔,一個胖子當著我的面吹牛珍坊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播正罢,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼垫蛆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腺怯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤川无,失蹤者是張志新(化名)和其女友劉穎呛占,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懦趋,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡晾虑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了仅叫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帜篇。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诫咱,靈堂內(nèi)的尸體忽然破棺而出笙隙,到底是詐尸還是另有隱情,我是刑警寧澤坎缭,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布竟痰,位于F島的核電站,受9級特大地震影響掏呼,放射性物質(zhì)發(fā)生泄漏坏快。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一憎夷、第九天 我趴在偏房一處隱蔽的房頂上張望莽鸿。 院中可真熱鬧,春花似錦拾给、人聲如沸祥得。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啃沪。三九已至粘拾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間创千,已是汗流浹背缰雇。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工械哟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暇咆,地道東北人爸业。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓索抓,卻偏偏與公主長得像逼肯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子大刊,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

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

  • Page 1:nginx 服務器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,536評論 1 41
  • 《老男孩Linux運維》筆記 隱藏Nginx軟件版本號 一般來說,軟件的漏洞都和版本有關(guān)蛾绎。因此要盡量隱藏對訪問用戶...
    Zhang21閱讀 3,642評論 0 28
  • 1.簡介: ? Nginx:engine X 鹏倘,2002年纤泵,開源捏题,商業(yè)版? http協(xié)議:web服務器(類似于ht...
    尛尛大尹閱讀 1,867評論 0 3
  • nginx在工作中已經(jīng)有好幾個環(huán)境在使用了,每次都是重新去網(wǎng)上扒博客循狰,各種編譯配置,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,299評論 0 4
  • Nginx簡介 解決基于進程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務都無法達到并發(fā)響應量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,003評論 0 9