<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      談?wù)?Nginx 那點事【一】

      為什么突然決定總結(jié)Nginx ?

      不知不覺8月份又要過完了,時間真是個無情的崽種。
      寫Nginx 首先,主要源于最近項目部署工作中和公司技術(shù)中心的人對接部署相關(guān)事宜流程太繁瑣了。每個部門有各自的工作安排 要協(xié)調(diào)要溝通就會有耗時。博主是一個不想麻煩別人的人 非外部或依托平臺的自身條件限制等原因,能自己解決的就都自己解決。
      其次,工作幾年來,或多或少都有用到Nginx的相關(guān)場景,也相當(dāng)于是自己的一次梳理,將知識結(jié)構(gòu)化和體系化。
      
      

      Nginx簡介

      背景介紹

      Nginx(“engine x”)一個具有高性能的【HTTP】和【反向代理】的【W(wǎng)EB服務(wù)器】,同時也是一個【POP3/SMTP/IMAP代理服務(wù)器】,是由伊戈爾·賽索耶夫(俄羅斯人)使用C語言編寫的,Nginx的第一個版本是2004年10月4號發(fā)布的0.1.0版本。另外值得一提的是伊戈爾·賽索耶夫?qū)ginx的源碼進(jìn)行了開源,這也為Nginx的發(fā)展提供了良好的保障。

      名詞解釋

      1. WEB服務(wù)器:

      WEB服務(wù)器也叫網(wǎng)頁服務(wù)器,英文名叫Web Server,主要功能是為用戶提供網(wǎng)上信息瀏覽服務(wù)。

      1. HTTP:

      HTTP是超文本傳輸協(xié)議的縮寫,是用于從WEB服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,也是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。HTTP是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn),客戶端是終端用戶,服務(wù)端是網(wǎng)站,通過使用Web瀏覽器、網(wǎng)絡(luò)爬蟲或者其他工具,客戶端發(fā)起一個到服務(wù)器上指定端口的HTTP請求。

      1. POP3/SMTP/IMAP:

      POP3(Post Offic Protocol 3)郵局協(xié)議的第三個版本,

      SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協(xié)議,

      IMAP(Internet Mail Access Protocol)交互式郵件存取協(xié)議,

      通過上述名詞的解釋,我們可以了解到Nginx也可以作為電子郵件代理服務(wù)器。

      1. 反向代理

      正向代理

      反向代理

      常見服務(wù)器對比

      在介紹這一節(jié)內(nèi)容之前,我們先來認(rèn)識一家公司叫Netcraft。

      Netcraft公司于1994年底在英國成立,多年來一直致力于互聯(lián)網(wǎng)市場以及在線安全方面的咨詢服務(wù),其中在國際上最具影響力的當(dāng)屬其針對網(wǎng)站服務(wù)器、SSL市場所做的客觀嚴(yán)謹(jǐn)?shù)姆治鲅芯?,公司官網(wǎng)每月公布的調(diào)研數(shù)據(jù)(Web Server Survey)已成為當(dāng)今人們了解全球網(wǎng)站數(shù)量以及服務(wù)器市場分額情況的主要參考依據(jù),時常被諸如華爾街雜志,英國BBC,Slashdot等媒體報道或引用。
      

      我們先來看一組數(shù)據(jù),我們先打開Nginx的官方網(wǎng)站 http://nginx.org/,找到Netcraft公司公布的數(shù)據(jù),對當(dāng)前主流服務(wù)器產(chǎn)品進(jìn)行介紹。

      上面這張圖展示了2019年全球主流Web服務(wù)器的市場情況,其中有Apache、Microsoft-IIS、google Servers、Nginx、Tomcat等,而我們在了解新事物的時候,往往習(xí)慣通過類比來幫助自己理解事物的概貌。所以下面我們把幾種常見的服務(wù)器來給大家簡單介紹下:

      IIS

      ? 全稱(Internet Information Services)即互聯(lián)網(wǎng)信息服務(wù),是由微軟公司提供的基于windows系統(tǒng)的互聯(lián)網(wǎng)基本服務(wù)。windows作為服務(wù)器在穩(wěn)定性與其他一些性能上都不如類UNIX操作系統(tǒng),因此在需要高性能Web服務(wù)器的場合下,IIS可能就會被"冷落".

      Tomcat

      ? Tomcat是一個運行Servlet和JSP的Web應(yīng)用軟件,Tomcat技術(shù)先進(jìn)、性能穩(wěn)定而且開放源代碼,因此深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。但是Tomcat天生是一個重量級的Web服務(wù)器,對靜態(tài)文件和高并發(fā)的處理比較弱。

      Apache

      ? Apache的發(fā)展時期很長,同時也有過一段輝煌的業(yè)績。從上圖可以看出大概在2014年以前都是市場份額第一的服務(wù)器。Apache有很多優(yōu)點,如穩(wěn)定、開源、跨平臺等。但是它出現(xiàn)的時間太久了,在它興起的年代,互聯(lián)網(wǎng)的產(chǎn)業(yè)規(guī)模遠(yuǎn)遠(yuǎn)不如今天,所以它被設(shè)計成一個重量級的、不支持高并發(fā)的Web服務(wù)器。在Apache服務(wù)器上,如果有數(shù)以萬計的并發(fā)HTTP請求同時訪問,就會導(dǎo)致服務(wù)器上消耗大量能存,操作系統(tǒng)內(nèi)核對成百上千的Apache進(jìn)程做進(jìn)程間切換也會消耗大量的CUP資源,并導(dǎo)致HTTP請求的平均響應(yīng)速度降低,這些都決定了Apache不可能成為高性能的Web服務(wù)器。這也促使了Lighttpd和Nginx的出現(xiàn)。

      Lighttpd

      ? Lighttpd是德國的一個開源的Web服務(wù)器軟件,它和Nginx一樣,都是輕量級、高性能的Web服務(wù)器,歐美的業(yè)界開發(fā)者比較鐘愛Lighttpd,而國內(nèi)的公司更多的青睞Nginx,同時網(wǎng)上Nginx的資源要更豐富些。

      其他的服務(wù)器

      Google Servers,Weblogic, Webshpere(IBM)...

      經(jīng)過各個服務(wù)器的對比,種種跡象都表明,Nginx將以性能為王。這也是我們?yōu)槭裁催x擇Nginx的理由。

      Nginx的優(yōu)點

      (1)速度更快、并發(fā)更高

      單次請求或者高并發(fā)請求的環(huán)境下,Nginx都會比其他Web服務(wù)器響應(yīng)的速度更快。一方面在正常情況下,單次請求會得到更快的響應(yīng),另一方面,在高峰期(如有數(shù)以萬計的并發(fā)請求),Nginx比其他Web服務(wù)器更快的響應(yīng)請求。Nginx之所以有這么高的并發(fā)處理能力和這么好的性能原因在于Nginx采用了多進(jìn)程和I/O多路復(fù)用(epoll)的底層實現(xiàn)。

      (2)配置簡單,擴展性強

      Nginx的設(shè)計極具擴展性,它本身就是由很多模塊組成,這些模塊的使用可以通過配置文件的配置來添加。這些模塊有官方提供的也有第三方提供的模塊,如果需要完全可以開發(fā)服務(wù)自己業(yè)務(wù)特性的定制模塊。

      (3)高可靠性

      Nginx采用的是多進(jìn)程模式運行,其中有一個master主進(jìn)程和N多個worker進(jìn)程,worker進(jìn)程的數(shù)量我們可以手動設(shè)置,每個worker進(jìn)程之間都是相互獨立提供服務(wù),并且master主進(jìn)程可以在某一個worker進(jìn)程出錯時,快速去"拉起"新的worker進(jìn)程提供服務(wù)。

      (4)熱部署

      現(xiàn)在互聯(lián)網(wǎng)項目都要求以7*24小時進(jìn)行服務(wù)的提供,針對于這一要求,Nginx也提供了熱部署功能,即可以在Nginx不停止的情況下,對Nginx進(jìn)行文件升級、更新配置和更換日志文件等功能。

      (5)成本低、BSD許可證

      BSD是一個開源的許可證,世界上的開源許可證有很多,現(xiàn)在比較流行的有六種分別是GPL、BSD、MIT、Mozilla、Apache、LGPL。這六種的區(qū)別是什么,我們可以通過下面一張圖來解釋下:

      Nginx本身是開源的,我們不僅可以免費的將Nginx應(yīng)用在商業(yè)領(lǐng)域,而且還可以在項目中直接修改Nginx的源碼來定制自己的特殊要求。這些點也都是Nginx為什么能吸引無數(shù)開發(fā)者繼續(xù)為Nginx來貢獻(xiàn)自己的智慧和青春。OpenRestry [Nginx+Lua] Tengine[淘寶]

      Nginx的功能特性及常用功能

      Nginx提供的基本功能服務(wù)從大體上歸納為"基本HTTP服務(wù)"、“高級HTTP服務(wù)”和"郵件服務(wù)"等三大類。

      基本HTTP服務(wù)

      Nginx可以提供基本HTTP服務(wù),可以作為HTTP代理服務(wù)器和反向代理服務(wù)器,支持通過緩存加速訪問,可以完成簡單的負(fù)載均衡和容錯,支持包過濾功能,支持SSL等。

      • 處理靜態(tài)文件、處理索引文件以及支持自動索引;
      • 提供反向代理服務(wù)器,并可以使用緩存加上反向代理,同時完成負(fù)載均衡和容錯;
      • 提供對FastCGI、memcached等服務(wù)的緩存機制,,同時完成負(fù)載均衡和容錯;
      • 使用Nginx的模塊化特性提供過濾器功能。Nginx基本過濾器包括gzip壓縮、ranges支持、chunked響應(yīng)、XSLT、SSI以及圖像縮放等。其中針對包含多個SSI的頁面,經(jīng)由FastCGI或反向代理,SSI過濾器可以并行處理。
      • 支持HTTP下的安全套接層安全協(xié)議SSL.
      • 支持基于加權(quán)和依賴的優(yōu)先權(quán)的HTTP/2

      高級HTTP服務(wù)

      • 支持基于名字和IP的虛擬主機設(shè)置
      • 支持HTTP/1.0中的KEEP-Alive模式和管線(PipeLined)模型連接
      • 自定義訪問日志格式、帶緩存的日志寫操作以及快速日志輪轉(zhuǎn)。
      • 提供3xx~5xx錯誤代碼重定向功能
      • 支持重寫(Rewrite)模塊擴展
      • 支持重新加載配置以及在線升級時無需中斷正在處理的請求
      • 支持網(wǎng)絡(luò)監(jiān)控
      • 支持FLV和MP4流媒體傳輸

      郵件服務(wù)

      Nginx提供郵件代理服務(wù)也是其基本開發(fā)需求之一,主要包含以下特性:

      • 支持IMPA/POP3代理服務(wù)功能
      • 支持內(nèi)部SMTP代理服務(wù)功能

      Nginx常用的功能模塊

      靜態(tài)資源部署
      Rewrite地址重寫
      	正則表達(dá)式
      反向代理
      負(fù)載均衡
      	輪詢、加權(quán)輪詢、ip_hash、url_hash、fair
      Web緩存
      環(huán)境部署
      	高可用的環(huán)境
      用戶認(rèn)證模塊...
      

      Nginx的核心組成

      nginx二進(jìn)制可執(zhí)行文件
      nginx.conf配置文件
      error.log錯誤的日志記錄
      access.log訪問日志記錄
      

      Nginx環(huán)境準(zhǔn)備

      Nginx版本介紹

      Nginx的官方網(wǎng)站為: http://nginx.org

      打開源碼可以看到如下的頁面內(nèi)容

      Nginx的官方下載網(wǎng)站為http://nginx.org/en/download.html,當(dāng)然你也可以之間在首頁選中右邊的download進(jìn)入版本下載網(wǎng)頁。在下載頁面我們會看到如下內(nèi)容:

      獲取Nginx源碼

      http://nginx.org/download/

      打開上述網(wǎng)站,就可以查看到Nginx的所有版本,選中自己需要的版本進(jìn)行下載。下載我們可以直接在windows上下載然后上傳到服務(wù)器,也可以直接從服務(wù)器上下載,這個時候就需要準(zhǔn)備一臺服務(wù)器。

      準(zhǔn)備服務(wù)器系統(tǒng)

      環(huán)境準(zhǔn)備

      VMware WorkStation
      Centos7
      MobaXterm
      	xsheel,SecureCRT
      網(wǎng)絡(luò)
      

      (1)確認(rèn)centos的內(nèi)核

      準(zhǔn)備一個內(nèi)核為2.6及以上版本的操作系統(tǒng),因為linux2.6及以上內(nèi)核才支持epoll,而Nginx需要解決高并發(fā)壓力問題是需要用到epoll,所以我們需要有這樣的版本要求。

      我們可以使用uname -a命令來查詢linux的內(nèi)核版本。

      (2)確保centos能聯(lián)網(wǎng)

      ping www.baidu.com
      

      (3)確認(rèn)關(guān)閉防火墻

      這一項的要求僅針對于那些對linux系統(tǒng)的防火墻設(shè)置規(guī)則不太清楚的,建議大家把防火墻都關(guān)閉掉,因為我們此次課程主要的內(nèi)容是對Nginx的學(xué)習(xí),把防火墻關(guān)閉掉,可以省掉后續(xù)Nginx學(xué)習(xí)過程中遇到的諸多問題。

      關(guān)閉的方式有如下兩種:

      systemctl stop firewalld      關(guān)閉運行的防火墻,系統(tǒng)重新啟動后,防火墻將重新打開
      systemctl disable firewalld   永久關(guān)閉防火墻,,系統(tǒng)重新啟動后,防火墻依然關(guān)閉
      systemctl status firewalld	 查看防火墻狀態(tài)
      

      (4)確認(rèn)停用selinux

      selinux(security-enhanced linux),美國安全局對于強制訪問控制的實現(xiàn),在linux2.6內(nèi)核以后的版本中,selinux已經(jīng)成功內(nèi)核中的一部分。可以說selinux是linux史上最杰出的新安全子系統(tǒng)之一。雖然有了selinux,我們的系統(tǒng)會更安全,但是對于我們的學(xué)習(xí)Nginx的歷程中,會多很多設(shè)置,所以這塊建議大家將selinux進(jìn)行關(guān)閉。

      sestatus查看狀態(tài)

      如果查看不是disabled狀態(tài),我們可以通過修改配置文件來進(jìn)行設(shè)置,修改SELINUX=disabled,然后重啟下系統(tǒng)即可生效。

      vim /etc/selinux/config
      

      Nginx安裝方式介紹

      Nginx的安裝方式有兩種分別是:

      通過Nginx源碼
      	通過Nginx源碼簡單安裝 (1)
      	通過Nginx源碼復(fù)雜安裝 (3)
      通過yum安裝 (2)
      

      如果通過Nginx源碼安裝需要提前準(zhǔn)備的內(nèi)容:

      GCC編譯器

      Nginx是使用C語言編寫的程序,因此想要運行Nginx就需要安裝一個編譯工具。GCC就是一個開源的編譯器集合,用于處理各種各樣的語言,其中就包含了C語言。

      使用命令yum install -y gcc來安裝

      安裝成功后,可以通過gcc --version來查看gcc是否安裝成功

      PCRE

      Nginx在編譯過程中需要使用到PCRE庫(perl Compatible Regular Expressoin 兼容正則表達(dá)式庫),因為在Nginx的Rewrite模塊和http核心模塊都會使用到PCRE正則表達(dá)式語法。

      可以使用命令yum install -y pcre pcre-devel來進(jìn)行安裝

      安裝成功后,可以通過rpm -qa pcre pcre-devel來查看是否安裝成功

      zlib

      zlib庫提供了開發(fā)人員的壓縮算法,在Nginx的各個模塊中需要使用gzip壓縮,所以我們也需要提前安裝其庫及源代碼zlib和zlib-devel

      可以使用命令yum install -y zlib zlib-devel來進(jìn)行安裝

      安裝成功后,可以通過rpm -qa zlib zlib-devel來查看是否安裝成功

      OpenSSL

      OpenSSL是一個開放源代碼的軟件庫包,應(yīng)用程序可以使用這個包進(jìn)行安全通信,并且避免被竊聽。

      SSL:Secure Sockets Layer安全套接協(xié)議的縮寫,可以在Internet上提供秘密性傳輸,其目標(biāo)是保證兩個應(yīng)用間通信的保密性和可靠性。在Nginx中,如果服務(wù)器需要提供安全網(wǎng)頁時就需要用到OpenSSL庫,所以我們需要對OpenSSL的庫文件及它的開發(fā)安裝包進(jìn)行一個安裝。

      可以使用命令yum install -y openssl openssl-devel來進(jìn)行安裝

      安裝成功后,可以通過rpm -qa openssl openssl-devel來查看是否安裝成功

      上述命令,一個個來的話比較麻煩,我們也可以通過一條命令來進(jìn)行安裝

      yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel進(jìn)行全部安裝。

      方案一:Nginx的源碼簡單安裝

      (1)進(jìn)入官網(wǎng)查找需要下載版本的鏈接地址,然后使用wget命令進(jìn)行下載

      wget http://nginx.org/download/nginx-1.16.1.tar.gz
      

      (2)建議大家將下載的資源進(jìn)行包管理

      mkdir -p nginx/core
      mv nginx-1.16.1.tar.gz nginx/core
      

      (3)解壓縮

      tar -xzf nginx-1.16.1.tar.gz
      

      (4)進(jìn)入資源文件中,發(fā)現(xiàn)configure

      ./configure
      

      (5)編譯

      make
      

      (6)安裝

      make install
      

      方案二:yum安裝

      使用源碼進(jìn)行簡單安裝,我們會發(fā)現(xiàn)安裝的過程比較繁瑣,需要提前準(zhǔn)備GCC編譯器、PCRE兼容正則表達(dá)式庫、zlib壓縮庫、OpenSSL安全通信的軟件庫包,然后才能進(jìn)行Nginx的安裝。

      (1)安裝yum-utils

      sudo yum  install -y yum-utils
      

      (2)添加yum源文件

      vim /etc/yum.repos.d/nginx.repo
      
      [nginx-stable]
      name=nginx stable repo
      baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
      gpgcheck=1
      enabled=1
      gpgkey=https://nginx.org/keys/nginx_signing.key
      module_hotfixes=true
      
      [nginx-mainline]
      name=nginx mainline repo
      baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
      gpgcheck=1
      enabled=0
      gpgkey=https://nginx.org/keys/nginx_signing.key
      module_hotfixes=true
      

      (3)查看是否安裝成功

      yum list | grep nginx
      

      (4)使用yum進(jìn)行安裝

      yun install -y nginx
      

      (5)查看nginx的安裝位置

      whereis nginx
      

      (6)啟動測試

      源碼簡單安裝和yum安裝的差異:

      這里先介紹一個命令: ./nginx -V,通過該命令可以查看到所安裝Nginx的版本及相關(guān)配置信息。

      簡單安裝

      yum安裝

      解壓Nginx目錄

      執(zhí)行tar -zxvf nginx-1.16.1.tar.gz對下載的資源進(jìn)行解壓縮,進(jìn)入壓縮后的目錄,可以看到如下結(jié)構(gòu)

      內(nèi)容解釋:

      auto:存放的是編譯相關(guān)的腳本

      CHANGES:版本變更記錄

      CHANGES.ru:俄羅斯文的版本變更記錄

      conf:nginx默認(rèn)的配置文件

      configure:nginx軟件的自動腳本程序,是一個比較重要的文件,作用如下:

      ? (1)檢測環(huán)境及根據(jù)環(huán)境檢測結(jié)果生成C代碼

      ? (2)生成編譯代碼需要的Makefile文件

      contrib:存放的是幾個特殊的腳本文件,其中README中對腳本有著詳細(xì)的說明

      html:存放的是Nginx自帶的兩個html頁面,訪問Nginx的首頁和錯誤頁面

      LICENSE:許可證的相關(guān)描述文件

      man:nginx的man手冊

      README:Nginx的閱讀指南

      src:Nginx的源代碼

      方案三:Nginx的源碼復(fù)雜安裝

      這種方式和簡單的安裝配置不同的地方在第一步,通過./configure來對編譯參數(shù)進(jìn)行設(shè)置,需要我們手動來指定。那么都有哪些參數(shù)可以進(jìn)行設(shè)置,接下來我們進(jìn)行一個詳細(xì)的說明。

      PATH:是和路徑相關(guān)的配置信息

      with:是啟動模塊,默認(rèn)是關(guān)閉的

      without:是關(guān)閉模塊,默認(rèn)是開啟的

      我們先來認(rèn)識一些簡單的路徑配置已經(jīng)通過這些配置來完成一個簡單的編譯:

      --prefix=PATH

      指向Nginx的安裝目錄,默認(rèn)值為/usr/local/nginx   
      

      --sbin-path=PATH

      指向(執(zhí)行)程序文件(nginx)的路徑,默認(rèn)值為<prefix>/sbin/nginx
      

      --modules-path=PATH

      指向Nginx動態(tài)模塊安裝目錄,默認(rèn)值為<prefix>/modules
      

      --conf-path=PATH

      指向配置文件(nginx.conf)的路徑,默認(rèn)值為<prefix>/conf/nginx.conf
      

      --error-log-path=PATH

      指向錯誤日志文件的路徑,默認(rèn)值為<prefix>/logs/error.log
      

      --http-log-path=PATH

      指向訪問日志文件的路徑,默認(rèn)值為<prefix>/logs/access.log
      

      --pid-path=PATH

      指向Nginx啟動后進(jìn)行ID的文件路徑,默認(rèn)值為<prefix>/logs/nginx.pid
      

      --lock-path=PATH

      指向Nginx鎖文件的存放路徑,默認(rèn)值為<prefix>/logs/nginx.lock
      

      要想使用可以通過如下命令

      ./configure \
      --prefix=/usr/local/tempdata/soft/nginx \
      --sbin-path=/usr/local/tempdata/soft/nginx/sbin/nginx \
      --modules-path=/usr/local/tempdata/soft/nginx/modules \
      --conf-path=/usr/local/tempdata/soft/nginx/conf/nginx.conf \
      --error-log-path=/usr/local/tempdata/soft/nginx/logs/error.log \
      --http-log-path=/usr/local/tempdata/soft/nginx/logs/access.log \
      --pid-path=/usr/local/tempdata/soft/nginx/logs/nginx.pid \
      --lock-path=/usr/local/tempdata/soft/nginx/logs/nginx.lock
      

      在使用上述命令之前,需要將之前服務(wù)器已經(jīng)安裝的nginx進(jìn)行卸載,卸載的步驟分為三步驟:

      步驟一:需要將nginx的進(jìn)程關(guān)閉

      ./nginx -s stop
      

      步驟二:將安裝的nginx進(jìn)行刪除

      rm -rf /usr/local/nginx
      

      步驟三:將安裝包之前編譯的環(huán)境清除掉

      make clean
      

      Nginx目錄結(jié)構(gòu)分析

      在使用Nginx之前,我們先對安裝好的Nginx目錄文件進(jìn)行一個分析,在這塊給大家介紹一個工具tree,通過tree我們可以很方面的去查看centos系統(tǒng)上的文件目錄結(jié)構(gòu),當(dāng)然,如果想使用tree工具,就得先通過yum install -y tree來進(jìn)行安裝,安裝成功后,可以通過執(zhí)行tree /usr/local/nginx(tree后面跟的是Nginx的安裝目錄),獲取的結(jié)果如下:

      conf:nginx所有配置文件目錄

      ? CGI(Common Gateway Interface)通用網(wǎng)關(guān)【接口】,主要解決的問題是從客戶端發(fā)送一個請求和數(shù)據(jù),服務(wù)端獲取到請求和數(shù)據(jù)后可以調(diào)用調(diào)用CGI【程序】處理及相應(yīng)結(jié)果給客戶端的一種標(biāo)準(zhǔn)規(guī)范。

      ? fastcgi.conf:fastcgi相關(guān)配置文件

      ? fastcgi.conf.default:fastcgi.conf的備份文件

      ? fastcgi_params:fastcgi的參數(shù)文件

      ? fastcgi_params.default:fastcgi的參數(shù)備份文件

      ? scgi_params:scgi的參數(shù)文件

      ? scgi_params.default:scgi的參數(shù)備份文件

      ? uwsgi_params:uwsgi的參數(shù)文件

      ? uwsgi_params.default:uwsgi的參數(shù)備份文件

      ? mime.types:記錄的是HTTP協(xié)議中的Content-Type的值和文件后綴名的對應(yīng)關(guān)系

      ? mime.types.default:mime.types的備份文件

      ? nginx.conf:這個是Nginx的核心配置文件,這個文件非常重要,也是我們即將要學(xué)習(xí)的重點

      ? nginx.conf.default:nginx.conf的備份文件

      ? koi-utf、koi-win、win-utf這三個文件都是與編碼轉(zhuǎn)換映射相關(guān)的配置文件,用來將一種編碼轉(zhuǎn)換成另一種編碼

      html:存放nginx自帶的兩個靜態(tài)的html頁面

      ? 50x.html:訪問失敗后的失敗頁面

      ? index.html:成功訪問的默認(rèn)首頁

      logs:記錄入門的文件,當(dāng)nginx服務(wù)器啟動后,這里面會有 access.log error.log 和nginx.pid三個文件出現(xiàn)。

      sbin:是存放執(zhí)行程序文件nginx

      ? nginx是用來控制Nginx的啟動和停止等相關(guān)的命令。

      Nginx服務(wù)器啟停命令

      Nginx安裝完成后,接下來我們要學(xué)習(xí)的是如何啟動、重啟和停止Nginx的服務(wù)。

      對于Nginx的啟停在linux系統(tǒng)中也有很多種方式,我們本次課程介紹兩種方式:

      1. Nginx服務(wù)的信號控制

      2. Nginx的命令行控制

      方式一:Nginx服務(wù)的信號控制

      Nginx中的master和worker進(jìn)程?
      Nginx的工作方式?
      如何獲取進(jìn)程的PID?
      信號有哪些?
      如何通過信號控制Nginx的啟停等相關(guān)操作?
      

      前面在提到Nginx的高性能,其實也和它的架構(gòu)模式有關(guān)。Nginx默認(rèn)采用的是多進(jìn)程的方式來工作的,當(dāng)將Nginx啟動后,我們通過ps -ef | grep nginx命令可以查看到如下內(nèi)容:

      從上圖中可以看到,Nginx后臺進(jìn)程中包含一個master進(jìn)程和多個worker進(jìn)程,master進(jìn)程主要用來管理worker進(jìn)程,包含接收外界的信息,并將接收到的信號發(fā)送給各個worker進(jìn)程,監(jiān)控worker進(jìn)程的狀態(tài),當(dāng)worker進(jìn)程出現(xiàn)異常退出后,會自動重新啟動新的worker進(jìn)程。而worker進(jìn)程則是專門用來處理用戶請求的,各個worker進(jìn)程之間是平等的并且相互獨立,處理請求的機會也是一樣的。nginx的進(jìn)程模型,我們可以通過下圖來說明下:

      我們現(xiàn)在作為管理員,只需要通過給master進(jìn)程發(fā)送信號就可以來控制Nginx,這個時候我們需要有兩個前提條件,一個是要操作的master進(jìn)程,一個是信號。

      (1)要想操作Nginx的master進(jìn)程,就需要獲取到master進(jìn)程的進(jìn)程號ID。獲取方式簡單介紹兩個,

      方式一:通過ps -ef | grep nginx;

      方式二:在講解nginx的./configure的配置參數(shù)的時候,有一個參數(shù)是--pid-path=PATH默認(rèn)是/usr/local/nginx/logs/nginx.pid,所以可以通過查看該文件來獲取nginx的master進(jìn)程ID.

      (2)信號

      信號 作用
      TERM/INT 立即關(guān)閉整個服務(wù)
      QUIT "優(yōu)雅"地關(guān)閉整個服務(wù)
      HUP 重讀配置文件并使用服務(wù)對新配置項生效
      USR1 重新打開日志文件,可以用來進(jìn)行日志切割
      USR2 平滑升級到最新版的nginx
      WINCH 所有子進(jìn)程不在接收處理新連接,相當(dāng)于給work進(jìn)程發(fā)送QUIT指令

      調(diào)用命令為kill -signal PID

      signal:即為信號;PID即為獲取到的master線程ID

      1. 發(fā)送TERM/INT信號給master進(jìn)程,會將Nginx服務(wù)立即關(guān)閉。
      kill -TERM PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
      kill -INT PID / kill -INT `cat /usr/local/nginx/logs/nginx.pid`
      
      1. 發(fā)送QUIT信號給master進(jìn)程,master進(jìn)程會控制所有的work進(jìn)程不再接收新的請求,等所有請求處理完后,在把進(jìn)程都關(guān)閉掉。
      kill -QUIT PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
      
      1. 發(fā)送HUP信號給master進(jìn)程,master進(jìn)程會把控制舊的work進(jìn)程不再接收新的請求,等處理完請求后將舊的work進(jìn)程關(guān)閉掉,然后根據(jù)nginx的配置文件重新啟動新的work進(jìn)程
      kill -HUP PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
      
      1. 發(fā)送USR1信號給master進(jìn)程,告訴Nginx重新開啟日志文件
      kill -USR1 PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
      
      1. 發(fā)送USR2信號給master進(jìn)程,告訴master進(jìn)程要平滑升級,這個時候,會重新開啟對應(yīng)的master進(jìn)程和work進(jìn)程,整個系統(tǒng)中將會有兩個master進(jìn)程,并且新的master進(jìn)程的PID會被記錄在/usr/local/nginx/logs/nginx.pid而之前的舊的master進(jìn)程PID會被記錄在/usr/local/nginx/logs/nginx.pid.oldbin文件中,接著再次發(fā)送QUIT信號給舊的master進(jìn)程,讓其處理完請求后再進(jìn)行關(guān)閉
      kill -USR2 PID / kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
      
      kill -QUIT PID / kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
      

      1. 發(fā)送WINCH信號給master進(jìn)程,讓master進(jìn)程控制不讓所有的work進(jìn)程在接收新的請求了,請求處理完后關(guān)閉work進(jìn)程。注意master進(jìn)程不會被關(guān)閉掉
      kill -WINCH PID /kill -WINCH`cat /usr/local/nginx/logs/nginx.pid`
      

      方式二:Nginx的命令行控制

      此方式是通過Nginx安裝目錄下的sbin下的可執(zhí)行文件nginx來進(jìn)行Nginx狀態(tài)的控制,我們可以通過nginx -h來查看都有哪些參數(shù)可以用:

      -?和-h:顯示幫助信息

      -v:打印版本號信息并退出

      -V:打印版本號信息和配置信息并退出

      -t:測試nginx的配置文件語法是否正確并退出

      -T:測試nginx的配置文件語法是否正確并列出用到的配置文件信息然后退出

      -q:在配置測試期間禁止顯示非錯誤消息

      -s:signal信號,后面可以跟 :

      ? stop[快速關(guān)閉,類似于TERM/INT信號的作用]

      ? quit[優(yōu)雅的關(guān)閉,類似于QUIT信號的作用]

      ? reopen[重新打開日志文件類似于USR1信號的作用]

      ? reload[類似于HUP信號的作用]

      -p:prefix,指定Nginx的prefix路徑,(默認(rèn)為: /usr/local/nginx/)

      -c:filename,指定Nginx的配置文件路徑,(默認(rèn)為: conf/nginx.conf)

      -g:用來補充Nginx配置文件,向Nginx服務(wù)指定啟動時應(yīng)用全局的配置

      Nginx服務(wù)器版本升級和新增模塊

      如果想對Nginx的版本進(jìn)行更新,或者要應(yīng)用一些新的模塊,最簡單的做法就是停止當(dāng)前的Nginx服務(wù),然后開啟新的Nginx服務(wù)。但是這樣會導(dǎo)致在一段時間內(nèi),用戶是無法訪問服務(wù)器。為了解決這個問題,我們就需要用到Nginx服務(wù)器提供的平滑升級功能。這個也是Nginx的一大特點,使用這種方式,就可以使Nginx在7*24小時不間斷的提供服務(wù)了。接下來我們分析下需求:

      需求:Nginx的版本最開始使用的是Nginx-1.14.2,由于服務(wù)升級,需要將Nginx的版本升級到Nginx-1.16.1,要求Nginx不能中斷提供服務(wù)。
      

      為了應(yīng)對上述的需求,這里我們給大家提供兩種解決方案:

      方案一:使用Nginx服務(wù)信號完成Nginx的升級

      方案二:使用Nginx安裝目錄的make命令完成升級

      環(huán)境準(zhǔn)備

      (1)先準(zhǔn)備兩個版本的Nginx分別是 1.14.2和1.16.1

      (2)使用Nginx源碼安裝的方式將1.14.2版本安裝成功并正確訪問

      進(jìn)入安裝目錄
      ./configure
      make && make install
      

      (3)將Nginx1.16.1進(jìn)行參數(shù)配置和編譯,不需要進(jìn)行安裝。

      進(jìn)入安裝目錄
      ./configure
      make 
      

      方案一:使用Nginx服務(wù)信號進(jìn)行升級

      第一步:將1.14.2版本的sbin目錄下的nginx進(jìn)行備份

      cd /usr/local/nginx/sbin
      mv nginx nginxold
      

      第二步:將Nginx1.16.1安裝目錄編譯后的objs目錄下的nginx文件,拷貝到原來/usr/local/nginx/sbin目錄下

      cd ~/nginx/core/nginx-1.16.1/objs
      cp nginx /usr/local/nginx/sbin
      

      第三步:發(fā)送信號USR2給Nginx的1.14.2版本對應(yīng)的master進(jìn)程

      第四步:發(fā)送信號QUIT給Nginx的1.14.2版本對應(yīng)的master進(jìn)程

      kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`
      

      方案二:使用Nginx安裝目錄的make命令完成升級

      第一步:將1.14.2版本的sbin目錄下的nginx進(jìn)行備份

      cd /usr/local/nginx/sbin
      mv nginx nginxold
      

      第二步:將Nginx1.16.1安裝目錄編譯后的objs目錄下的nginx文件,拷貝到原來/usr/local/nginx/sbin目錄下

      cd ~/nginx/core/nginx-1.16.1/objs
      cp nginx /usr/local/nginx/sbin
      

      第三步:進(jìn)入到安裝目錄,執(zhí)行make upgrade

      第四步:查看是否更新成功

      ./nginx -v
      

      在整個過程中,其實Nginx是一直對外提供服務(wù)的。并且當(dāng)Nginx的服務(wù)器啟動成功后,我們是可以通過瀏覽器進(jìn)行直接訪問的,同時我們可以通過更改html目錄下的頁面來修改我們在頁面上所看到的內(nèi)容,那么問題來了,為什么我們要修改html目錄下的文件,能不能多添加一些頁面是Nginx的功能更加豐富,還有前面聊到Nginx的前端功能又是如何來實現(xiàn)的,這就需要我們對Nginx的核心配置文件進(jìn)行一個詳細(xì)的學(xué)習(xí)。

      Nginx核心配置文件結(jié)構(gòu)

      從前面的內(nèi)容學(xué)習(xí)中,我們知道Nginx的核心配置文件默認(rèn)是放在/usr/local/nginx/conf/nginx.conf,這一節(jié),我們就來學(xué)習(xí)下nginx.conf的內(nèi)容和基本配置方法。

      讀取Nginx自帶的Nginx配置文件,我們將其中的注釋部分【學(xué)習(xí)一個技術(shù)點就是在Nginx的配置文件中可以使用#來注釋】刪除掉后,就剩下下面內(nèi)容:

      worker_processes  1;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
      
          server {
              listen       80;
              server_name  localhost;
              location / {
                  root   html;
                  index  index.html index.htm;
              }
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      
      }
      
      指令名	指令值;  #全局塊,主要設(shè)置Nginx服務(wù)器整體運行的配置指令
      
       #events塊,主要設(shè)置,Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接,這一部分對Nginx服務(wù)器的性能影響較大
      events {	 
          指令名	指令值;
      }
      #http塊,是Nginx服務(wù)器配置中的重要部分,代理、緩存、日志記錄、第三方模塊配置...             
      http {		
          指令名	指令值;
          server { #server塊,是Nginx配置和虛擬主機相關(guān)的內(nèi)容
              指令名	指令值;
              location / { 
              #location塊,基于Nginx服務(wù)器接收請求字符串與location后面的值進(jìn)行匹配,對特定請求進(jìn)行處理
                  指令名	指令值;
              }
          }
      	...
      }
      

      簡單小結(jié)下:

      nginx.conf配置文件中默認(rèn)有三大塊:全局塊、events塊、http塊

      http塊中可以配置多個server塊,每個server塊又可以配置多個location塊。

      全局塊

      user指令

      (1)user:用于配置運行Nginx服務(wù)器的worker進(jìn)程的用戶和用戶組。

      語法 user user [group]
      默認(rèn)值 nobody
      位置 全局塊

      該屬性也可以在編譯的時候指定,語法如下./configure --user=user --group=group,如果兩個地方都進(jìn)行了設(shè)置,最終生效的是配置文件中的配置。

      該指令的使用步驟:

      (1)設(shè)置一個用戶信息"www"

      user www;
      

      (2) 創(chuàng)建一個用戶

      useradd www
      

      (3)修改user屬性

      user www
      

      (4)創(chuàng)建/root/html/index.html頁面,添加如下內(nèi)容

      
      <!DOCTYPE html>
      <html>
      <head>
      <title>Welcome to nginx!</title>
      <style>
          body {
              width: 35em;
              margin: 0 auto;
              font-family: Tahoma, Verdana, Arial, sans-serif;
          }
      </style>
      </head>
      <body>
      <h1>Welcome to nginx!</h1>
      <p>If you see this page, the nginx web server is successfully installed and
      working. Further configuration is required.</p>
      
      <p>For online documentation and support please refer to
      <a >nginx.org</a>.<br/>
      Commercial support is available at
      <a >nginx.com</a>.</p>
      
      <p><em>Thank you for using nginx.</em></p>
      <p><em>I am WWW</em></p>
      </body>
      </html>
      

      (5)修改nginx.conf

      location / {
      	root   /root/html;
      	index  index.html index.htm;
      }
      

      (5)測試啟動訪問

      頁面會報403拒絕訪問的錯誤
      

      (6)分析原因

      因為當(dāng)前用戶沒有訪問/root/html目錄的權(quán)限
      

      (7)將文件創(chuàng)建到 /home/www/html/index.html,修改配置

      location / {
      	root   /home/www/html;
      	index  index.html index.htm;
      }
      

      (8)再次測試啟動訪問

      能正常訪問。
      

      綜上所述,使用user指令可以指定啟動運行工作進(jìn)程的用戶及用戶組,這樣對于系統(tǒng)的權(quán)限訪問控制的更加精細(xì),也更加安全。

      work process指令

      master_process:用來指定是否開啟工作進(jìn)程。

      語法 master_process on|off;
      默認(rèn)值 master_process on;
      位置 全局塊

      worker_processes:用于配置Nginx生成工作進(jìn)程的數(shù)量,這個是Nginx服務(wù)器實現(xiàn)并發(fā)處理服務(wù)的關(guān)鍵所在。理論上來說workder process的值越大,可以支持的并發(fā)處理量也越多,但事實上這個值的設(shè)定是需要受到來自服務(wù)器自身的限制,建議將該值和服務(wù)器CPU的內(nèi)核數(shù)保存一致。

      語法 worker_processes num/auto;
      默認(rèn)值 1
      位置 全局塊

      如果將worker_processes設(shè)置成2,則會看到如下內(nèi)容:

      其他指令

      daemon:設(shè)定Nginx是否以守護(hù)進(jìn)程的方式啟動。

      守護(hù)式進(jìn)程是linux后臺執(zhí)行的一種服務(wù)進(jìn)程,特點是獨立于控制終端,不會隨著終端關(guān)閉而停止。

      語法 daemon on|off;
      默認(rèn)值 daemon on;
      位置 全局塊

      pid:用來配置Nginx當(dāng)前master進(jìn)程的進(jìn)程號ID存儲的文件路徑。

      語法 pid file;
      默認(rèn)值 默認(rèn)為:/usr/local/nginx/logs/nginx.pid
      位置 全局塊

      該屬性可以通過./configure --pid-path=PATH來指定

      error_log:用來配置Nginx的錯誤日志存放路徑

      語法 error_log file [日志級別];
      默認(rèn)值 error_log logs/error.log error;
      位置 全局塊、http、server、location

      該屬性可以通過./configure --error-log-path=PATH來指定

      其中日志級別的值有:debug|info|notice|warn|error|crit|alert|emerg,翻譯過來為試|信息|通知|警告|錯誤|臨界|警報|緊急,這塊建議大家設(shè)置的時候不要設(shè)置成info以下的等級,因為會帶來大量的磁盤I/O消耗,影響Nginx的性能。

      (5)include:用來引入其他配置文件,使Nginx的配置更加靈活

      語法 include file;
      默認(rèn)值
      位置 any

      events塊

      (1)accept_mutex:用來設(shè)置Nginx網(wǎng)絡(luò)連接序列化

      語法 accept_mutex on|off;
      默認(rèn)值 accept_mutex on;
      位置 events

      這個配置主要可以用來解決常說的"驚群"問題。大致意思是在某一個時刻,客戶端發(fā)來一個請求連接,Nginx后臺是以多進(jìn)程的工作模式,也就是說有多個worker進(jìn)程會被同時喚醒,但是最終只會有一個進(jìn)程可以獲取到連接,如果每次喚醒的進(jìn)程數(shù)目太多,就會影響Nginx的整體性能。如果將上述值設(shè)置為on(開啟狀態(tài)),將會對多個Nginx進(jìn)程接收連接進(jìn)行序列號,一個個來喚醒接收,就防止了多個進(jìn)程對連接的爭搶。

      (2)multi_accept:用來設(shè)置是否允許同時接收多個網(wǎng)絡(luò)連接

      語法 multi_accept on|off;
      默認(rèn)值 multi_accept off;
      位置 events

      如果multi_accept被禁止了,nginx一個工作進(jìn)程只能同時接受一個新的連接。否則,一個工作進(jìn)程可以同時接受所有的新連接

      (3)worker_connections:用來配置單個worker進(jìn)程最大的連接數(shù)

      語法 worker_connections number;
      默認(rèn)值 worker_commections 512;
      位置 events

      這里的連接數(shù)不僅僅包括和前端用戶建立的連接數(shù),而是包括所有可能的連接數(shù)。另外,number值不能大于操作系統(tǒng)支持打開的最大文件句柄數(shù)量。

      (4)use:用來設(shè)置Nginx服務(wù)器選擇哪種事件驅(qū)動來處理網(wǎng)絡(luò)消息。

      語法 use method;
      默認(rèn)值 根據(jù)操作系統(tǒng)定
      位置 events

      注意:此處所選擇事件處理模型是Nginx優(yōu)化部分的一個重要內(nèi)容,method的可選值有select/poll/epoll/kqueue等,之前在準(zhǔn)備centos環(huán)境的時候,我們強調(diào)過要使用linux內(nèi)核在2.6以上,就是為了能使用epoll函數(shù)來優(yōu)化Nginx。

      另外這些值的選擇,我們也可以在編譯的時候使用

      --with-select_module、--without-select_module、

      --with-poll_module、 --without-poll_module來設(shè)置是否需要將對應(yīng)的事件驅(qū)動模塊編譯到Nginx的內(nèi)核。

      events指令配置實例

      打開Nginx的配置文件 nginx.conf,添加如下配置

      events{
      	accept_mutex on;
      	multi_accept on;
      	worker_commections 1024;
      	use epoll;
      }
      

      啟動測試

      ./nginx -t
      ./nginx -s reload
      

      http塊

      定義MIME-Type

      我們都知道瀏覽器中可以顯示的內(nèi)容有HTML、XML、GIF等種類繁多的文件、媒體等資源,瀏覽器為了區(qū)分這些資源,就需要使用MIME Type。所以說MIME Type是網(wǎng)絡(luò)資源的媒體類型。Nginx作為web服務(wù)器,也需要能夠識別前端請求的資源類型。

      在Nginx的配置文件中,默認(rèn)有兩行配置

      include mime.types;
      default_type application/octet-stream;
      

      (1)default_type:用來配置Nginx響應(yīng)前端請求默認(rèn)的MIME類型。

      語法 default_type mime-type;
      默認(rèn)值 default_type text/plain;
      位置 http、server、location

      在default_type之前還有一句include mime.types,include之前我們已經(jīng)介紹過,相當(dāng)于把mime.types文件中MIMT類型與相關(guān)類型文件的文件后綴名的對應(yīng)關(guān)系加入到當(dāng)前的配置文件中。

      舉例來說明:

      有些時候請求某些接口的時候需要返回指定的文本字符串或者json字符串,如果邏輯非常簡單或者干脆是固定的字符串,那么可以使用nginx快速實現(xiàn),這樣就不用編寫程序響應(yīng)請求了,可以減少服務(wù)器資源占用并且響應(yīng)性能非???。

      如何實現(xiàn):

      location /get_text {
      	#這里也可以設(shè)置成text/plain
          default_type text/html;
          return 200 "This is nginx's text";
      }
      
      location /get_json{
          default_type application/json;
          return 200 '{"name":"TOM","age":18}';
      }
      

      自定義服務(wù)日志

      Nginx中日志的類型分access.log、error.log。

      access.log:用來記錄用戶所有的訪問請求。

      error.log:記錄nginx本身運行時的錯誤信息,不會記錄用戶的訪問請求。

      Nginx服務(wù)器支持對服務(wù)日志的格式、大小、輸出等進(jìn)行設(shè)置,需要使用到兩個指令,分別是access_log和log_format指令。

      (1)access_log:用來設(shè)置用戶訪問日志的相關(guān)屬性。

      語法 access_log path[format[buffer=size]]
      默認(rèn)值 access_log logs/access.log combined;
      位置 http, server, location

      (2)log_format:用來指定日志的輸出格式。

      語法 log_format name [escape=default|json|none] string....;
      默認(rèn)值 log_format combined "...";
      位置 http

      其他配置指令

      (1)sendfile:用來設(shè)置Nginx服務(wù)器是否使用sendfile()傳輸文件,該屬性可以大大提高Nginx處理靜態(tài)資源的性能

      語法 sendfile on|off;
      默認(rèn)值 sendfile off;
      位置 http、server、location

      (2)keepalive_timeout:用來設(shè)置長連接的超時時間。

      》為什么要使用keepalive?

      我們都知道HTTP是一種無狀態(tài)協(xié)議,客戶端向服務(wù)端發(fā)送一個TCP請求,服務(wù)端響應(yīng)完畢后斷開連接。
      如何客戶端向服務(wù)端發(fā)送多個請求,每個請求都需要重新創(chuàng)建一次連接,效率相對來說比較多,使用keepalive模式,可以告訴服務(wù)器端在處理完一個請求后保持這個TCP連接的打開狀態(tài),若接收到來自這個客戶端的其他請求,服務(wù)端就會利用這個未被關(guān)閉的連接,而不需要重新創(chuàng)建一個新連接,提升效率,但是這個連接也不能一直保持,這樣的話,連接如果過多,也會是服務(wù)端的性能下降,這個時候就需要我們進(jìn)行設(shè)置其的超時時間。
      
      語法 keepalive_timeout time;
      默認(rèn)值 keepalive_timeout 75s;
      位置 http、server、location

      (3)keepalive_requests:用來設(shè)置一個keep-alive連接使用的次數(shù)。

      語法 keepalive_requests number;
      默認(rèn)值 keepalive_requests 100;
      位置 http、server、location

      server塊和location塊

      server塊和location塊都是我們要重點講解和學(xué)習(xí)的內(nèi)容,因為我們后面會對Nginx的功能進(jìn)行詳細(xì)講解,所以這塊內(nèi)容就放到靜態(tài)資源部署的地方給大家詳細(xì)說明。

      本節(jié)我們主要來認(rèn)識下Nginx默認(rèn)給的nginx.conf中的相關(guān)內(nèi)容,以及server塊與location塊在使用的時候需要注意的一些內(nèi)容。

      	server {
              listen       80;
              server_name  localhost;
              location / {
                  root   html;
                  index  index.html index.htm;
              }
             
              error_page   500 502 503 504 404  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      
      posted @ 2021-08-24 15:38  DOONDO  閱讀(519)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲 国产 制服 丝袜 一区 | 2020年最新国产精品正在播放| 日本电影一区二区三区| 男女啪啪高清无遮挡免费| 护士张开腿被奷日出白浆| 亚洲人成小说网站色在线| 国产日产欧产精品精品| 免费AV片在线观看网址| 日韩精品中文女同在线播放| 日韩精品国产另类专区| 亚洲精品一区二区三区综合| 精品国产一区二区三区四区| 亚洲性日韩精品一区二区| 日韩V欧美V中文在线| 二区中文字幕在线观看| 国产精品美女一区二区三| 国产性三级高清在线观看| 国产精品一区二区久久岳| 久久国产精品老人性| av天堂久久精品影音先锋| 欧美国产精品不卡在线观看| 亚洲欧洲一区二区免费| 精品久久久久久无码人妻蜜桃| 极品美女扒开粉嫩小泬图片| 久久精品国产99亚洲精品| 91中文字幕一区在线| 成年女人喷潮免费视频| 国产成人黄色自拍小视频| 中文字幕永久精品国产| 中文字幕国产精品日韩| 午夜毛片精彩毛片| 亚洲欧洲久久激情久av| 99在线小视频| 国产第一页浮力影院入口| 亚洲日本高清一区二区三区| 真人性囗交视频| 激情四射激情五月综合网| 麻豆国产成人AV在线播放| 人妻中文字幕av资源站| 亚洲小说乱欧美另类| 成熟丰满熟妇av无码区|