Nginx的詳細

一、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
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 大多數(shù) Nginx 新手都會頻繁遇到這樣一個困惑,那就是當同一個location配置塊使用了多個 Nginx 模塊...
    SkTj閱讀 8,221評論 0 12
  • nginx Nginx是一款開源代碼的高性能HTTP服務器和反向代理服務器,同時支持IMAP/POP3/SMTP代...
    碼哥說閱讀 872評論 1 8
  • 最近網(wǎng)絡上的敏感搜索詞真是五花八門,各式各樣,無奇不有,而近幾年“幼師打孩子”逐漸成為了社會大眾津津樂道的話題...
    親愛的小魚老師閱讀 691評論 0 1
  • 今天在家里收拾好東西,準備17號出發(fā)去廣州,之前托管班的善后工作正在做,但是我的合伙人好像對我不去做托管的事挺失望...
    Elma0224閱讀 87評論 0 0
  • 加了兩天的班,幾十項資料總算整理完了 晚上終于可以做自己喜歡的事啦 真期待她著完色的樣子 會不會很驚艷呢 我還想在...
    米壽兒閱讀 224評論 0 1

友情鏈接更多精彩內(nèi)容