一、nginx的程序的目錄結構
01、基礎了解
1) 用戶訪問網(wǎng)站的原理
2) HTTPd協(xié)議報文
3)HTTP協(xié)議的重點概念
請求:請求方法 請求的協(xié)議
響應:狀態(tài)碼
4) 網(wǎng)站資源
靜態(tài)資源
動態(tài)資源
5) 網(wǎng)站的度量方式
IP PV UV (cookie session)并發(fā)
6) 網(wǎng)站的常見的服務的軟件
7) nginx程序的利用方源方式進行部署
………………………………………………………………………………………………………………………………
02、 nginx的軟件概念說明
1) 可以實現(xiàn)網(wǎng)站服務功能
2) 可以實現(xiàn)負載均衡功能
3) 可以實現(xiàn)前端緩存功能
4) 可以實現(xiàn)安全訪問功能
作用特點:
1)支持高并發(fā):能支持幾萬并發(fā)連接(特別是靜態(tài)小文件業(yè)務環(huán)境)
2) 資源消耗少:在3萬并發(fā)的連接下,開啟10個線程的時候它消耗的內(nèi)存不到200MB
3) 支持異步網(wǎng)絡I/O事件模型epoll
……………………………………………………………………………………………………………………………………………………
03、nginx的軟件和Apache軟件進行對比
nginx的使用的網(wǎng)絡模型epoll
處理效率:(回調)
就相當于有一個名單,它對按照名單去找你想要的東西然后在告訴你它在哪。
Apache的使用的模型select
處理效率:(線性輪回)
它就是會一個一個的查找這樣很費時間
……………………………………………………………………………………………………………………………………………………………………
04、用戶訪問網(wǎng)站的原理
00. 用戶輸入域名點擊回車
01. 完成域名DNS解析過程 DNS原理
02. 完成TCP三次握手建立
03. 向網(wǎng)站服務器訪問請求信息(HTTP請求)
03.5. 網(wǎng)站架構接收用戶請求 (負載均衡 web集群 存儲 數(shù)據(jù)庫 緩存...)
04. 向客戶端響應數(shù)據(jù)信息 (HTTP響應)
05. 用戶利用瀏覽器解析響應信息,顯示最終頁面
06. 完成TCP四次揮手過程
………………………………………………………………………………………………………………………………
05、用戶訪問網(wǎng)站的HTTP協(xié)議原理
什么是HTTP:超文本傳輸協(xié)議
HTTP協(xié)議請求:報文結構 4個部分
1)請求行: 標題 1行
請求方法:get(獲?。?post(提交)
請求內(nèi)容:默認index.html(首頁文件)
協(xié)議版本:HTTP1.0 HTTP1.1 HTTP2.0(高并發(fā)訪問效率更高)
TCP協(xié)議長連接和短連接概念:
短連接:一次連接 一次請求
長連接:一次連接 多次請求
2)請求頭: 中心思想 多行
請求主機信息: 根據(jù)請求主機信息顯示不同頁面 www bbs blog
請求user-agent信息:打開手機---騰訊瀏覽器APP---設置---瀏覽器UA:iphone
3)空行
4)請求主體: 詳細說明內(nèi)容 多行
使用get方法:沒有請求主體
使用post方法:產(chǎn)生請求主體(提交的信息 用戶注冊信息 用戶登錄信息) ???
HTTP協(xié)議響應:報文結構 4個部分
1)響應行:
響應狀態(tài)碼:響應結果 面試題
200 OK --- 正常結果信息
301 --- 跳轉 永久跳轉
302 --- 跳轉 臨時跳轉
401 --- 認證失敗了
403 --- 用戶禁止訪問 爬蟲 iptables
--- 網(wǎng)站首頁文件不存在
404 --- 你訪問的頁面不存在
網(wǎng)站服務端會進行優(yōu)雅顯示
5xx --- 網(wǎng)站架構服務有關
2)響應頭部:
響應的服務程序:web服務程序名稱 nginx/tenginx/bfe/apache
3)空行
4)響應主體:
請求響應過來的代碼信息:html代碼信息
…………………………………………………………………………………………………………………………………………………………………………
06、HTTP協(xié)議資源
媒體資源類型:mime.types 媒體資源類型文件
媒體資源類型文件中有的信息:會直接解析,顯示頁面
媒體資源類型文件沒有的信息:會進行下載,不會解析
訪問網(wǎng)站地址類型:
www.oldboy.com /oldboy.jj
url uri
url: 全稱為Uniform Resource Location,中文翻譯為統(tǒng)一資源定位符,也被稱為網(wǎng)頁地址
uri: 全稱為Uniform Resource Identifier,中文翻譯為統(tǒng)一資源標識符,是一個用于標識某一互聯(lián)網(wǎng)資源名稱的字符串
訪問資源分類:
靜態(tài)資源: 所見即所得 見到的代碼是什么樣,瀏覽器解析就會解析成什么頁面
1) 訪問資源uri擴展名信息
每個頁面都有一個固定的URL地址,且URI一般以.html、.htm、.shtml等常見形式為后綴,而且地址中不含有問號“?”或“&”等特殊符號。
2) 網(wǎng)頁內(nèi)容一經(jīng)發(fā)布到網(wǎng)站服務器上,無論是否有用戶訪問,每個網(wǎng)頁的內(nèi)容都是保存在網(wǎng)站服務器文件系統(tǒng)上的,也就是說,靜態(tài)網(wǎng)頁是實實在在保存在服務器上的文件實體,每個網(wǎng)頁都是一個獨立的文件。
*3) 網(wǎng)頁內(nèi)容是固定不變的,因此,容易被搜索引擎收錄(容易被用戶找到)(優(yōu)點)。
4) 因為網(wǎng)頁沒有數(shù)據(jù)庫的支持,所以在網(wǎng)站制作和維護方面的工作量較大,當網(wǎng)站信息量很大時,完全依靠靜態(tài)網(wǎng)頁比較困難(缺點)。
5) 網(wǎng)頁的交互性較差,在程序的功能實現(xiàn)方面有較大的限制(缺點)。
*6) 網(wǎng)頁程序在用戶瀏覽器端解析,如IE瀏覽器,程序解析效率很高,由于服務器端不進行解析,并且不需要讀取數(shù)據(jù)庫,因此服務器端可以接受更多的并發(fā)訪問。當客戶端向服務器請求數(shù)據(jù)時,服務器會直接從磁盤文件系統(tǒng)上返回數(shù)據(jù)(不做任何解析)。待客戶端拿到數(shù)據(jù)后,在瀏覽器端解析并展現(xiàn)出來(優(yōu)點)。
用戶請求 --- web服務器 -- index.html oldboy.html oldboy.jpg --- 用戶
動態(tài)資源: 會調取數(shù)據(jù)庫資源,顯示頁面信息
1) 網(wǎng)頁擴展名后綴常見為:.asp、.aspx、.php、.js、.do、.cgi等。 ※
*2) 網(wǎng)頁一般以數(shù)據(jù)庫技術為基礎,大大降低了網(wǎng)站維護的工作量。
*3) 采用動態(tài)網(wǎng)頁技術的網(wǎng)站可以實現(xiàn)更多的功能,如用戶注冊、用戶登錄、在線調查、投票、用戶管理、訂單處理、發(fā)博文等。
*4) 動態(tài)網(wǎng)頁并不是獨立存在于服務器上的網(wǎng)頁文件,當用戶請求服務器上的動態(tài)程序時,服務器解析這些程序并可能通過讀取數(shù)據(jù)庫來返回一個完整的網(wǎng)頁內(nèi)容。
5) 動態(tài)網(wǎng)頁中的“?”在搜索引擎的收錄方面存在一定的問題,搜索引擎一般不會從一個網(wǎng)站的數(shù)據(jù)庫中訪問全部網(wǎng)頁,或者出于技術等方面的考慮,搜索蜘蛛一般不會去抓取網(wǎng)址中“?”后面的內(nèi)容,因此在企業(yè)通過搜索引擎進行推廣時,需要針對采用動態(tài)網(wǎng)頁的網(wǎng)站做一定的技術處理(偽靜態(tài)技術),以便適應搜索引擎的抓取要求。
6) 動態(tài)資源需要和數(shù)據(jù)進行交互,網(wǎng)頁面顯示效率較低
用戶請求 --- web服務器 --- oldboy.php ---> php服務處理 --> 數(shù)據(jù)庫 --- php --- web --- 用戶
用戶請求 --- web服務器 --- oldboy.js ---> tomcat服務處理 --> 數(shù)據(jù)庫
偽靜態(tài)資源:
1)有數(shù)據(jù)庫支持,可以進行交互
2)便于被搜索引擎收錄
………………………………………………………………………………………………………………………………………………………………………………………………
07、網(wǎng)站的度量方式
IP:根據(jù)用戶訪問的源IP地址 awk數(shù)組 ELK---access.log(記錄用戶源IP地址(公網(wǎng)IP地址))
參考數(shù)據(jù)值:192.168(南方 10萬) 10.0.0(北方 1萬) 彩票
PV: 頁面訪問量
參考數(shù)據(jù)值:用戶點擊網(wǎng)站頁面的數(shù)量
UV:記錄獨立用戶訪客數(shù)量
cookie: 鑰匙 會員卡 網(wǎng)站給用戶分配身份標識信息,保存在主機本地
session:鎖頭 會員登記表 網(wǎng)站產(chǎn)生的用戶訪問記錄信息,保存在網(wǎng)站服務器中
程序代碼進行統(tǒng)計
度量數(shù)值參考:http://alexa.chinaz.com/alexa_more.aspx
…………………………………………………………………………………………………………………………………………………………
08、企業(yè)常用的web服務
官方參考:https://w3techs.com/technologies/overview/web_server/all
處理靜態(tài)資源網(wǎng)站:
nginx web服務軟件:
apache web服務軟件:zabbix
Tengine
處理動態(tài)資源網(wǎng)站
php web服務軟件:
tomcat
……………………………………………………………………………………………………………………………………………………………………………………………………………………
二、nginx的程序配置文件信息
nginx主配置文件信息
1)結構
events {
worker_connections 1024; --事件區(qū)塊
}
http { --HTTP區(qū)塊
server { -- server 主機區(qū)塊
location / { --location 區(qū)塊
}
}
}
三、完成一個網(wǎng)站的頁面的部署HTML
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
四、nginx在企業(yè)的實際應用
1)作為web服務
nginx是一個支持高性能,高并發(fā)的web服務軟件,它具有很多的優(yōu)點,做為web服務器與Apache想比,
nginx能夠支持更多的并發(fā)連接訪問,但占用的資源卻很少,效率高,在功能上也強大了很多,幾乎不亞于Apache。
2)反向代理和負載均衡服務
在反向代理和負載均衡服務方面,nginx可以做為web服務,PHP等動態(tài)服務及memcahed緩存的代理服務器,他具有類似專業(yè)反向代理軟件的功能,
同時也是一個很優(yōu)秀的郵件代理服務軟件,但是nginx的代理功能相對來說還是簡單了些,特別是不支持TCP的代理(從nginx1.9.0版就已經(jīng)支持了)
3)前端的業(yè)務數(shù)據(jù)緩存服務
在web服務方面,nginx可以通過自身的模塊就可以實現(xiàn)squid等專業(yè)的緩存軟件
nginx的這三大功能(前端的負載均衡和反向代理,業(yè)務緩存)是國內(nèi)使用nginx的主要場景。
####nginx的主要重要特征及應用場合
1)nginx可以針對靜態(tài)資源的高速并發(fā)訪問及緩存
2)可使用反向代理加速,并且可進行健康檢查
3)具有簡單的負載均衡,節(jié)點健康檢查和容錯功能。
4)支持遠程的FastCGI服務的緩存加速。
5)具有模塊化的架構:過濾器包括gzip壓縮,ranges支持,chunked響應,XSLT圖像縮放等功能。
6)支持基于名字。端口及ip地址的多虛擬機主機站點
7)支持keepalive和pipelined連接
8)可自定義日志的格式,臨時緩存寫日志操作,快數(shù)日志輪詢及通過rsylog處理日志
五、nginx的特殊模塊

image.png

image.png

image.png

image.png