基于Nginx的中間件架構(gòu)(一):配置語法卢未、Nginx模塊肪凛、請求限制和訪問控制、靜態(tài)WEB服務(wù)

一辽社、I/O介紹和Nginx簡介

1.1 I/O 類型(理解)

同步和異步:關(guān)注的是消息通知機制伟墙;

同步: 調(diào)用發(fā)出之后不會立即返回,但一旦返回滴铅,則返回最終結(jié)果戳葵;

異步:調(diào)用發(fā)出之后,被調(diào)用方立即返回消息失息,但返回的并非最終結(jié)果譬淳。被調(diào)用者通過狀態(tài)、通知機制等來通知調(diào)用者盹兢,或通過回調(diào)函數(shù)來處理結(jié)果邻梆;

阻塞block和非阻塞nonblock:關(guān)注的是調(diào)用者等待被調(diào)用者返回調(diào)用結(jié)果時的狀態(tài)。

阻塞: 調(diào)用結(jié)果返回之前绎秒,調(diào)用者會被掛起浦妄,調(diào)用者只有在得到返回結(jié)果之后才能繼續(xù)。

非阻塞:****調(diào)用者在結(jié)果返回之前见芹,不會被掛起剂娄;

1.2 I/O模型

blocking IO:阻塞式IO nonblocking IO:非阻塞IOmultiplexing:多路復(fù)用IO signal driven IO:事件驅(qū)動式IO asynchronous IO:異步IO 

真正執(zhí)行IO過程的階段是內(nèi)核內(nèi)存數(shù)據(jù)拷貝到進程內(nèi)存中。

1.3 Nginx優(yōu)點

Nginx(發(fā)音同 engine x)是一個異步框架的 Web服務(wù)器玄呛,也可以用作 反向代理阅懦, 負(fù)載平衡器請求分發(fā)

1.3.1 I/O多路復(fù)用(重點

多個描述符的IO操作都能夠在 一個線程內(nèi)并發(fā)交替的順序完成徘铝,這就叫做IO多路復(fù)用耳胎,這里的復(fù)用指的是復(fù)用同一個線程。(就像多個學(xué)生同時完成作業(yè)惕它,同時共享一個老師怕午,學(xué)生做完作業(yè)舉手請求老師。)

clipboard.png
clipboard.png

select線性遍歷淹魄,效率低郁惜,監(jiān)視文件描述符的數(shù)量存在最大限制為1024。
epoll:每當(dāng)FD就緒甲锡,采用系統(tǒng)的回調(diào)函數(shù)之間將FD放入兆蕉,效率更高羽戒,最大連接無限制。(例:服務(wù)器告訴老板給顧客結(jié)賬恨樟,'select'只告訴老板有客人結(jié)賬半醉,老板需要挨個詢問,而'epoll'同時告訴老板是哪些顧客要結(jié)賬劝术。)
Nginx就是采用的epoll模型缩多。

1.3.2 輕量級

1、功能模塊少
2养晋、代碼模塊化(易讀易開發(fā))

1.3.3 CPU的親和(affinity)

nginx的CPU的親和衬吆,有多個工作進程運行方式減少性能損耗,是一種把CPU核心和nginx工作進程綁定方式绳泉,把每個worker進程固定在一個cpu上執(zhí)行逊抡,減少切換cpucache miss,獲得更好的性能零酪。

1.3.4 sendfile

不通過User space,減少靜態(tài)文件用戶空間切換冒嫡,直接通過內(nèi)核零拷貝,明顯提高傳輸效率四苇。

clipboard.png

10年架構(gòu)師領(lǐng)你架構(gòu)-成長之路-(附面試題(含答案))

(騰訊T3-T4)打造互聯(lián)網(wǎng)PHP架構(gòu)師教程目錄大全孝凌,只要你看完,薪資立馬提升2倍(持續(xù)更新)

點擊與我交流企鵝群.

二月腋、配置語法(非常常用

2.1 默認(rèn)配置語法

clipboard.png

nginx.conf 作為主配置文件
include /etc/nginx/conf.d/*.conf 讀到這會把該目錄的.conf也讀進來

1蟀架、全局性的和服務(wù)級別的

user 設(shè)置使用用戶worker_processes 進行增大并發(fā)連接數(shù)的處理 跟cpu保持一致 八核設(shè)置八個error_log nginx的錯誤日志pid  nginx服務(wù)啟動時候pid 

2、event對事件的模塊

worker_connections 一個進程允許處理的最大連接數(shù)use 定義使用的內(nèi)核模型

3榆骚、server

root 首頁的路徑index 首頁默認(rèn)訪問哪個頁面error_page 500 502 503 504  /50x.html  錯誤頁面 前面的500是**`http狀態(tài)碼`** systemctl restart nginx.service 重啟nginxsystemctl reload nginx.service 不關(guān)閉服務(wù)柔和地重啟

2.2 HTTP

clipboard.png
curl -v http://www.baidu.com >/dev/null #-v 同時顯示狀態(tài)碼等信息nginx -V #顯示nginx版本及配置文件等信息

2.3 日志

日志類型:error.logaccess.log

error.log(記錄處理http請求的錯誤狀態(tài)以及nginx本身服務(wù)的錯誤狀態(tài))access.log(每次http請求的訪問狀態(tài))

log_format:設(shè)置了日志的記錄格式片拍,定義日志以什么樣的樣式記錄到error.log、access.log中妓肢,log_format的配置只能配置在http模塊中捌省。

access_log配置在http中。

2.4 變量

clipboard.png
clipboard.png

三碉钠、Nginx模塊

Nginx官方模塊第三方模塊

3.1 默認(rèn)模塊

http_stub_status_module:監(jiān)控NGINX客戶端狀態(tài)

clipboard.png
location /mystatus{        stub_status;        }

瀏覽器訪問:www.xxxx.com/mystatus

clipboard.png
clipboard.png

random_index off | on 寫在默認(rèn)的配置文件loaction 里面纲缓,這個配置是隨機訪問主頁頁面,如果有隱藏的主頁面則不會訪問(以.開頭的文件)

clipboard.png
clipboard.png
clipboard.png
clipboard.png

sub_filter 字符串替換
sub_filter_once默認(rèn)是開啟(on)只替換一個放钦,改為off的話色徘,多個要替換的都會替換掉恭金;這個配置作用在 http server location這三個作用域中

感謝大家一直來支持操禀,這是我準(zhǔn)備的1000粉絲福利

【1000粉絲福利】10年架構(gòu)師分享PHP進階架構(gòu)資料,助力大家都能30K

點擊與我交流企鵝群.

四横腿、請求限制和訪問控制

4.1 請求限制

limit_conn_module 連接頻率限制limit_req_module 請求頻率限制
clipboard.png

HTTP請求事建立在 TCP之上的颓屑,會進行三次握手斤寂;
長連接: keepalive

clipboard.png
clipboard.png

鏈接限制:

clipboard.png

請求限制:

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
clipboard.png

存儲remote_add回避binary_remote_addr多10個字節(jié)

CentOS 7 安裝 ab(Apache Benchmark)壓力測試工具

sudo yum -y install httpd-tools

ab -n 50 -c 20 http://www.xxx.com/xxx.html # -n 發(fā)起的請求數(shù) -c 并發(fā)數(shù)

4.2 訪問控制

4.2.1 基于IP的訪問控制 - 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

location ~(模式匹配)

clipboard.png
IP段
clipboard.png
clipboard.png
clipboard.png
clipboard.png

4.2.2 基于用戶的信任登錄 - http_auth_basic_module

大廠2000道面試題(含答案)

PHP面試題匯總揪惦,看完這些面試題助力你面試成功遍搞,工資必有20-25K

點擊與我交流企鵝群.

五、靜態(tài)資源WEB服務(wù)

clipboard.png

5.1 靜態(tài)資源類型

clipboard.png

5.2 靜態(tài)資源服務(wù)場景-CND

clipboard.png

5.3 壓縮與解壓縮

clipboard.png

5.4 瀏覽器緩存(重要)

clipboard.png

5.4.1 瀏覽器無緩存

clipboard.png

5.4.2 瀏覽器有緩存

clipboard.png

5.4.3 校驗過期機制

clipboard.png
clipboard.png

5.4.4 配置語法 - expires

clipboard.png

5.5 跨站訪問

clipboard.png

5.5.1 為什么瀏覽器禁止跨站訪問

不安全器腋,容易出現(xiàn) CSRF攻擊溪猿!

clipboard.png
clipboard.png
clipboard.png

5.6 防盜鏈(重要)

防止資源被盜用

防盜鏈思路:

首要方式:區(qū)別哪些請求時非正常的用戶請求

5.6.1 基于http_refer防盜鏈配置模塊

clipboard.png
clipboard.png

喜歡我的文章就關(guān)注我吧,持續(xù)更新中.....

以上內(nèi)容希望幫助到大家纫塌,很多PHPer在進階的時候總會遇到一些問題和瓶頸诊县,業(yè)務(wù)代碼寫多了沒有方向感,不知道該從那里入手去提升措左,對此我整理了一些資料依痊,包括但不限于:分布式架構(gòu)、高可擴展怎披、高性能胸嘁、高并發(fā)、服務(wù)器性能調(diào)優(yōu)凉逛、TP6性宏,laravel,YII2鱼炒,Redis衔沼,Swoole、Swoft昔瞧、Kafka指蚁、Mysql優(yōu)化、shell腳本自晰、Docker凝化、微服務(wù)、Nginx等多個知識點高級進階干貨需要的可以免費分享給大家酬荞,需要的可以點擊進入暗號:知乎搓劫。

curl -I http://api.go-qxd.com/static/images/nx-xds-logo.jpg # 只請求頭信息    curl -e "http://baidu.com" -I http://api.go-qxd.com/static/images/nx-xds-logo.jpg #
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市混巧,隨后出現(xiàn)的幾起案子枪向,更是在濱河造成了極大的恐慌,老刑警劉巖咧党,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纠俭,死亡現(xiàn)場離奇詭異荞下,居然都是意外死亡舵稠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門负蠕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倦畅,你說我怎么就攤上這事遮糖。” “怎么了叠赐?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵欲账,是天一觀的道長。 經(jīng)常有香客問我芭概,道長敬惦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任谈山,我火速辦了婚禮俄删,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奏路。我一直安慰自己畴椰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布鸽粉。 她就那樣靜靜地躺著斜脂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪触机。 梳的紋絲不亂的頭發(fā)上帚戳,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音儡首,去河邊找鬼片任。 笑死,一個胖子當(dāng)著我的面吹牛蔬胯,可吹牛的內(nèi)容都是我干的对供。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氛濒,長吁一口氣:“原來是場噩夢啊……” “哼产场!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舞竿,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤京景,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后骗奖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體确徙,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡靡菇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了米愿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鼻吮,死狀恐怖育苟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椎木,我是刑警寧澤违柏,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站香椎,受9級特大地震影響漱竖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畜伐,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一馍惹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玛界,春花似錦万矾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至笨枯,卻和暖如春薪丁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馅精。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工严嗜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洲敢。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓阻问,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沦疾。 傳聞我的和親對象是個殘疾皇子称近,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354