2018-03-13 Nginx從入門到實(shí)踐-基礎(chǔ)篇

一.學(xué)習(xí)環(huán)境:系統(tǒng)硬件:CPU > =2Core,內(nèi)存 >=256M

操作系統(tǒng):版本>=7.0,位數(shù) X64

二.環(huán)境調(diào)試確認(rèn)

1,確認(rèn)系統(tǒng)網(wǎng)絡(luò)

2,確認(rèn)yum可用

yum list | grep gcc

兩項(xiàng)安裝

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

yum -y install wget httpd-tools vim

一次初始化

cd /opt;mkdir app download logs work backup

3,確認(rèn)關(guān)閉iptables規(guī)則

service firewalld stop

ps -ef | grep firewall

4,確認(rèn)停用seinux




Nginx的中間件架構(gòu)


Nginx的中間件架構(gòu)??

? ? ?一.Nginx的簡(jiǎn)述:Nginx是一個(gè)開源且高性能,可靠的Http中間件,代理服務(wù).

? ? ?二.常見的Http服務(wù):httpd-Apache基金會(huì),IIS-微軟,GWS-Google

? ? ?三.問:為什么選擇Nginx??

? ? 原因一,IO多路復(fù)用epoll多個(gè)描述符的I/O操作? ? ? ? 都能在一個(gè)線程內(nèi)并發(fā)? ? ? 交替地順序完成,這就叫I/O多路復(fù)用,這里的附庸指的是復(fù)用同一個(gè)線程.什? ? ? ?么是epoll IO多路復(fù)用實(shí)現(xiàn)方式select,poll,epoll



IO多路復(fù)用epoll

select缺點(diǎn):1.能夠監(jiān)視文件描述符的數(shù)量存在最大限制

? ? ? ? ? ? ? ? ? ?2.線形掃描效率低下

epoll模型:1.每當(dāng)FD就緒,采用系統(tǒng)的回調(diào)函數(shù)之間將fd放入,效率更高.

? ? ? ? ? ? ? ? ?2.最大連接無限制

原因二,輕量級(jí) 功能模塊少 代碼模塊化

原因三,CPU親和(affinity)一,為什么需要CPU親和



Cpu親和(affinity)

什么是Cpu親和:是一種把Cpu親和和Nginx工作進(jìn)程綁定方式,把每個(gè)worker進(jìn)程固定在一個(gè)cpu上執(zhí)行,減少切換cpu的cache miss,獲得更好的性能.

原因四,sendfile



Sendfile


Sendfile

一,Nginx快速搭建與基本參數(shù)使用

Mainline version - 開發(fā)版? ?Stable version - 穩(wěn)定版本 Legacy version - 歷史版本

二,基本參數(shù)使用

安裝目錄 編譯參數(shù) nginx基本配置語(yǔ)法

1,安裝目錄講解

cd /etc/yum.repos.d/

vim nginx.repo

yum -y install nginx

nginx -V

yum list | grep nginx

命令: rpm -ql nginx

/etc/logrotate.d/nginx 配置文件

/etc/nginx 目錄

/etc/nginx/nginx.conf 配置文件

/etc/nginx/conf.d? 目錄

/etc/nginx/conf.d/default.conf 默認(rèn)配置目錄

/etc/nginx/fastcgi_params fastcgi配置文件

/etc/nginx/uwsgi_params uwsgi配置文件

/etc/nginx/scgi_params scgi配置文件

/etc/nginx/koi-utf 編碼轉(zhuǎn)換影射轉(zhuǎn)化

/etc/nginx/koi-win 編碼轉(zhuǎn)換影射轉(zhuǎn)化

/etc/nginx/win-utf? 編碼轉(zhuǎn)換影射轉(zhuǎn)化

/etc/nginx/mime.types 設(shè)置http協(xié)議的Content-Type與擴(kuò)展名對(duì)應(yīng)關(guān)系

/usr/lib/sysemd/system/nginx-debug.service?

/usr/lib/sysemd/system/nginx.service

/etc/sysconfig/nginx

/etc/sysconfig/nginx

用于配置出系統(tǒng)守護(hù)進(jìn)程管理器管理方式

/usr/lib64/nginx/modules

/etc/nginx/modules

Nginx模塊目錄

/usr/sbin/nginx

/usr/sbin/nginx-debug

Nginx服務(wù)的啟動(dòng)管理的終端命令

/usr/share/doc/nginx-1.12.0

/usr/share/doc/nginx-1.12.0/COPYRIGHT?

/usr/share/man/man8/nginx.8.gz?

Nginx的手冊(cè)和幫助文件

/var/cache/nginx

Nginx的緩存目錄

/var/log/nginx

Nginx的日志目錄

2,安裝編譯參數(shù)

命令:nginx-V

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock

安裝目的的目錄或路徑

--http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp

執(zhí)行模塊時(shí)卸留,Nginx所保留的臨時(shí)性文件

--user=nginx --group=nginx 設(shè)定Nginx進(jìn)程啟動(dòng)的用戶和組的用戶

--with-cc-opt=parameters 設(shè)置額外的參數(shù)被添加到CFLAGS變量

--with-ld-opt=parameters 設(shè)置附加的參數(shù)疯淫,鏈接系統(tǒng)庫(kù)?

Http請(qǐng)求


Http請(qǐng)求

request - 包括請(qǐng)求行,請(qǐng)求頭部,請(qǐng)求數(shù)據(jù)

> GET / HTTP/1.1

> User-Agent: curl/7.29.0

> Host: www.imooc.com

> Accept: */*

response - 包括狀態(tài)行,消息報(bào)頭,響應(yīng)正文

curl -v http://www.imooc.com >/del/null 類似于瀏覽器查看web請(qǐng)求

2,Nginx日志類型

包括:error.log access_log

log_format

Syntax:log_format name [escape=default|json]string...;

Default:log_format combined "...",

Context:http

2.Nginx的變量

Http請(qǐng)求變量 -arg_PARAMRTER,Http_HEADER,sent_http_HEADER

內(nèi)置變量 - Nginx內(nèi)置的

自定義變量 - 自己定義

Nginx模塊講解

Nginx官方模塊

第三方模塊

--with-http_stub_status_module Nginx的客戶端狀態(tài)

--with-http_stub_status_module配置

Syntax:stub_status;

Default:--

Context:server,location

四,默認(rèn)模塊講解

--with-http_random_index_module 目錄中選擇一個(gè)隨機(jī)主頁(yè)

2,rangdom_index_module

syntax:random_index on | off;

Default:random_index off;

Context:location

--with-http_sub_module HTTP內(nèi)容替換

Syntax : sub_filter string replacement;

Default:--

Context:http,server,location

2.http_sub_module

Syntax: sub_filter_last_modified on|off;

Default:sub_filter_last_modifiied off;

Context:http,server,location

2.http_sub_module

Syntax: sub_filter_once on|off;

Default:sub_filter_once on;

Context:http,server,location

八,Nginx的請(qǐng)求限制

連接頻率限制 - limit_conn_module

請(qǐng)求頻率限制- limit_req_module




Http協(xié)議的連接與請(qǐng)求

Http 1.0 Tcp不能服用

Http 1.1順序性Tcp復(fù)用

Http2.0多路復(fù)用Tcp服用

八始鱼,Http協(xié)議的連接與請(qǐng)求

Http請(qǐng)求建立在一次Tcp連接基礎(chǔ)上

一次Tcp請(qǐng)求至少產(chǎn)生一次Http請(qǐng)求

連接限制

syntax:limit_conn_zone key zone=name:size;

Default:--

context:http

Syntax:limint_conn zone number;

Default:--

Context:http,server,location

八 請(qǐng)求限制

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的訪問控制

基于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

基于用戶的信任登陸-http_auth_basic_module

http_access_module局限性


http_access_module局限性? 只能通過$remote_addr控制信任


3.http_x_forwarded_for

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

方法一,采用別的Http頭信息控制訪問,如:Http_X_Forward_For

方法二,結(jié)合geo模塊作

方法三,通過http自定義變量傳遞

http_auth_basic_module

Syntax:auth_basic strint | off;

Default:auth_basic off;

Context:http,server,location,limit_except

Syntax:auth_basic_user_file file;

Default:----

Context:http,server,location,limit_except

http_auth_basic_module局限性

一,用戶信息以來文件方式

二癣缅,操作管理機(jī)械进肯,效率低下

3估灿,解決方案

一,Nginx結(jié)合Lua實(shí)現(xiàn)高效驗(yàn)證

二出爹,Nginx和LDAP打通庄吼,利用nginx-auth-ldap

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市严就,隨后出現(xiàn)的幾起案子总寻,更是在濱河造成了極大的恐慌,老刑警劉巖梢为,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渐行,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡铸董,警方通過查閱死者的電腦和手機(jī)祟印,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粟害,“玉大人蕴忆,你說我怎么就攤上這事”” “怎么了套鹅?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵站蝠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我卓鹿,道長(zhǎng)菱魔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任吟孙,我火速辦了婚禮豌习,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拔疚。我一直安慰自己肥隆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布稚失。 她就那樣靜靜地躺著栋艳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪句各。 梳的紋絲不亂的頭發(fā)上吸占,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音凿宾,去河邊找鬼矾屯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛初厚,可吹牛的內(nèi)容都是我干的件蚕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼产禾,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼排作!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亚情,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤妄痪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后楞件,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衫生,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年土浸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罪针。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栅迄,死狀恐怖站故,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤西篓,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布愈腾,位于F島的核電站,受9級(jí)特大地震影響岂津,放射性物質(zhì)發(fā)生泄漏虱黄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一吮成、第九天 我趴在偏房一處隱蔽的房頂上張望橱乱。 院中可真熱鬧,春花似錦粱甫、人聲如沸泳叠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)危纫。三九已至,卻和暖如春乌庶,著一層夾襖步出監(jiān)牢的瞬間种蝶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工瞒大, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留螃征,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓透敌,卻偏偏與公主長(zhǎng)得像盯滚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拙泽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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