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

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

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

      1. 初識(shí)Nginx

      1 Nginx的三個(gè)主要應(yīng)用場(chǎng)景

      三個(gè)主要應(yīng)用場(chǎng)景為:

      • 靜態(tài)資源服務(wù)(通過(guò)本地文件系統(tǒng)提供服務(wù))
      • 反向代理服務(wù)
      • API服務(wù)(OpenRestydeng )

      1.1 反向代理服務(wù)

      1.1.1 負(fù)載均衡

      負(fù)載均衡,一般包含兩方面的含義。

      • 一方面是,將單一的重負(fù)載分擔(dān)到多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上做并行處理,每個(gè)節(jié)點(diǎn)處理結(jié)束后將結(jié)構(gòu)匯總返回給用戶,這樣可以大幅提高網(wǎng)絡(luò)系統(tǒng)的處理能力;

      • 第二個(gè)方面的含義是,將大量的前段并發(fā)訪問(wèn)或數(shù)據(jù)流量分擔(dān)到多個(gè)后端網(wǎng)絡(luò)節(jié)點(diǎn)上分別處理,這樣可以有效減少前端用戶等待響應(yīng)的時(shí)間。

      Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器等關(guān)鍵應(yīng)用服務(wù)器等網(wǎng)絡(luò)應(yīng)用方面談到的負(fù)載均衡問(wèn)題,基本隸屬于后一方面的含義。

      因此,Nginx服務(wù)器的負(fù)載均衡主要是對(duì)大量前端訪問(wèn)和流量進(jìn)行分流,以保證前端用戶訪問(wèn)效率。可以說(shuō),在絕大多數(shù)的Nginx應(yīng)用中,都會(huì)或多或少涉及它的負(fù)載均衡服務(wù)。

      復(fù)制均衡策略

      即內(nèi)置策略和擴(kuò)展策略。

      1. 內(nèi)置策略主要包括輪詢、加權(quán)輪詢和IP hash三種;

      2. 擴(kuò)展策略主要通過(guò)第三方模塊實(shí)現(xiàn),種類比較豐富,常見(jiàn)的有url hash、fair等。

      在默認(rèn)情況下,內(nèi)置策略會(huì)被編譯進(jìn)Nginx內(nèi)核,使用時(shí)只需要在Nginx服務(wù)器配置中設(shè)置相關(guān)參數(shù)即可;

      擴(kuò)展策略不會(huì)編譯進(jìn)Nginx內(nèi)核,需要手動(dòng)將第三方模塊編譯到Nginx內(nèi)核。

      輪詢

      輪詢策略比較簡(jiǎn)單,就是將前端請(qǐng)求按順序(時(shí)間順序或者排列次序)逐一分配到不同的后端節(jié)點(diǎn)上,對(duì)于出現(xiàn)問(wèn)題的后端節(jié)點(diǎn)自動(dòng)排除。

      加權(quán)輪詢

      加權(quán)輪詢策略,顧名思義,就是在基本的輪詢策略上考慮各后端節(jié)點(diǎn)接受請(qǐng)求的權(quán)重,指定各后端節(jié)點(diǎn)被輪詢到的幾率。

      加權(quán)輪詢策略主要用于后端節(jié)點(diǎn)不均的情況。根據(jù)后端節(jié)點(diǎn)性能的實(shí)際情況,我們可以在Nginx服務(wù)器的配置文件中調(diào)整權(quán)值,使得整個(gè)網(wǎng)絡(luò)對(duì)前端請(qǐng)求達(dá)到最佳的響應(yīng)能力。

      IP hash

      IP hash策略,是將前端的訪問(wèn)IP進(jìn)行hash操作,然后根據(jù)hash結(jié)果將請(qǐng)求分配給不同的后端節(jié)點(diǎn)。

      事實(shí)上,這種策略可以看作是一種特殊的輪詢策略。

      通過(guò)Nginx的實(shí)現(xiàn),每個(gè)前端訪問(wèn)IP會(huì)固定訪問(wèn)一個(gè)后端節(jié)點(diǎn)。這樣做的好處是避免考慮前端用戶的session在后端多個(gè)節(jié)點(diǎn)上共享的問(wèn)題。

      url hash

      擴(kuò)展策略中的url hash在形式上和IP hash相近,不同之處在于,IP hash策略是對(duì)前端訪問(wèn)IP進(jìn)行了hash操作,而url hash策略是對(duì)前端請(qǐng)求的url進(jìn)行了hash操作。url hash策略的優(yōu)點(diǎn)在于,如果后端有緩存服務(wù)器,它能夠高緩存效率,同時(shí)也解決了session的問(wèn)題;但其缺點(diǎn)是,如果后端節(jié)點(diǎn)出現(xiàn)異常,它不能自動(dòng)排除該節(jié)點(diǎn)。后端節(jié)點(diǎn)出現(xiàn)異常會(huì)導(dǎo)致Nginx服務(wù)器返回503錯(cuò)誤。

      fair

      擴(kuò)展的第三方模塊fair則是從另一個(gè)角度來(lái)實(shí)現(xiàn)Nginx服務(wù)器負(fù)載均衡策略的。該模塊將前端請(qǐng)求轉(zhuǎn)發(fā)到一個(gè)最近負(fù)載最小的后臺(tái)節(jié)點(diǎn)。Nginx通過(guò)后端節(jié)點(diǎn)對(duì)請(qǐng)求的響應(yīng)時(shí)間來(lái)判斷負(fù)載情況。響應(yīng)時(shí)間短的節(jié)點(diǎn)負(fù)載相對(duì)就輕。得出判斷結(jié)果后,Nginx就將前端請(qǐng)求轉(zhuǎn)發(fā)到選中的負(fù)載最輕的節(jié)點(diǎn)。

      least_conn

      最少連接

      1.1.2 Web緩存

      Squid在Web服務(wù)器領(lǐng)域中是一款相當(dāng)流行的開(kāi)源代理服務(wù)器和Web緩存服務(wù)器。作為網(wǎng)頁(yè)服務(wù)器的前置緩存服務(wù)器,在很多優(yōu)秀的站點(diǎn)中,它被用以緩存前端請(qǐng)求,從而提高Web服務(wù)器的性能;而且,它還可以緩存萬(wàn)維網(wǎng)、域名系統(tǒng)或者其他網(wǎng)絡(luò)搜索等,為一個(gè)集體提供網(wǎng)路資源共享服務(wù)。

      Nginx服務(wù)器從0.7.48版本開(kāi)始,也支持了和Squid類似的緩存功能。

      Nginx服務(wù)器的Web緩存服務(wù)主要由Proxy_Cache相關(guān)指令集和FastCGI_Cache相關(guān)指令集構(gòu)成。

      其中,Proxy_Cache主要用于在Nginx服務(wù)器提供反向代理服務(wù)時(shí),對(duì)后端源服務(wù)器的返回內(nèi)容進(jìn)行URL緩存;

      FastCGI_Cache主要用于對(duì)FastCGI的動(dòng)態(tài)程序進(jìn)行緩存。

      另外還有一款常用的第三方模塊ngx_cache_purge也是Nginx服務(wù)器Web緩存功能中經(jīng)常用到的。它主要用于清除Nginx服務(wù)器上指定的URL緩存。

      到Nginx 0.8.32版本,Proxy_Cache和FastCGI_Cache兩部分的功能已經(jīng)比較完善,再配合第三方的ngx_cache_purge模塊,Nginx服務(wù)器已經(jīng)具備了Squid所擁有的Web緩存加速功能和清除指定URL緩存的功能;

      同時(shí),Nginx服務(wù)器對(duì)多核CPU的調(diào)度比Squid更勝一籌,性能高于Squid,而在反向代理、負(fù)載均衡等其他方面,Nginx也不遜于Squid。這使得Nginx服務(wù)器可以同時(shí)作為負(fù)載均衡服務(wù)器和Web緩存服務(wù)器來(lái)使用,基本可以取代Squid。

      2 Nginx的優(yōu)點(diǎn)

      nginx的優(yōu)點(diǎn)

      • 輕量級(jí),同樣起web服務(wù)比apache占用更少內(nèi)存及資源;

      • Nginx 異步非阻塞的方式處理高并發(fā)請(qǐng)求,能保持低資源、低消耗、高性能;

      • 高度模塊化設(shè)計(jì),編寫(xiě)模塊相對(duì)簡(jiǎn)單,生態(tài)圈強(qiáng)大。

      • 核心優(yōu)點(diǎn):高并發(fā)、高性能、高可擴(kuò)展、高可靠性、熱部署、BSD許可證。

      Nginx為什么性能高、占用內(nèi)存少?

      • Nginx采用多進(jìn)程模式,對(duì)每個(gè)worker進(jìn)程來(lái)說(shuō),獨(dú)立的進(jìn)程不需要加鎖,互不影響;
      • 一個(gè)進(jìn)程退出后,其他進(jìn)程繼續(xù)工作,服務(wù)不會(huì)中斷,master進(jìn)程則很快啟動(dòng)新的worker進(jìn)程;
      • worker進(jìn)程異常退出肯定是程序有bug導(dǎo)致,但也只會(huì)影響當(dāng)前worker上的請(qǐng)求,不會(huì)影響到其他進(jìn)程的請(qǐng)求,降低風(fēng)險(xiǎn);
      • Nginx采用異步非阻塞的方式去處理請(qǐng)求,更加高效。

      3 Nginx的組成

      1. Nginx二進(jìn)制可執(zhí)行文件
        • 由各模塊源碼編譯出的一個(gè)文件
      2. nginx.conf配置文件
        • 控制nginx的行為
      3. access.log訪問(wèn)日志
        • 記錄每一條http請(qǐng)求信息
      4. error.log錯(cuò)誤日志
        • 定位問(wèn)題

      4 編譯安裝Nginx

      4.1 下載Nginx

      nginx下載地址:http://nginx.org/download/

      在官網(wǎng)找最新穩(wěn)定版使用:http://nginx.org/en/download.html

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

      4.2 介紹各目錄

      # ls
      auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
      
       
      • auto:包含了很多會(huì)在執(zhí)行configure進(jìn)行編譯配置時(shí)調(diào)用的檢測(cè)代碼。

      • CHANGES:Nginx的版本更新細(xì)節(jié)記錄。英文版。

      • CHANGES.ru:Nginx的版本更新細(xì)節(jié)記錄。俄文版。

      • conf:Nginx提供的一些默認(rèn)配置文件。

      • configure:根據(jù)系統(tǒng)環(huán)境設(shè)定Nginx編譯選項(xiàng)的執(zhí)行腳本。

      • contrib:網(wǎng)友貢獻(xiàn)的一些有用腳本(對(duì)我來(lái)說(shuō),里面的vim設(shè)置很有用,README中有使用方法)。

        • 把contrib/vim下的文件移入~/.vim目錄下,讓vim識(shí)別nginx的配置文件節(jié)點(diǎn);
          cp -r contrib/vim/* ~/.vim
          
           
      • html:提供了兩個(gè)默認(rèn)html頁(yè)面,比如index.html的Welcome to nginx!。

      • LICENSE:聲明的Nginx源碼許可協(xié)議。

      • man:Nginx的Man手冊(cè),本文文件,可直接用vi或記事本打開(kāi)。

      • README:讀我文件,內(nèi)容很簡(jiǎn)單,通告一下官網(wǎng)地址。

      • src:Nginx源碼,分門別類,比如實(shí)現(xiàn)事件的event等,很清晰。

      4.3 Configure

      先安裝相關(guān)依賴

      gzip模塊需要zlib庫(kù)

      rewrite模塊需要pcre庫(kù)

      ssl功能需要openssl庫(kù)

      yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
      
       

      然后運(yùn)行configure文件

      # ./configure --help
      
       
      • --prefix :指定安裝目錄
      • --with:新增模塊
      • --without:刪除默認(rèn)模塊

      運(yùn)行期中與路徑相關(guān)的各種參數(shù)

      --prefix=PATH                        #指向安裝目錄
      --sbin-path=PATH                     #指向(執(zhí)行)程序文件(nginx)
      --conf-path=PATH                     #指向配置文件(nginx.conf)
      --error-log-path=PATH                #指向錯(cuò)誤日志目錄
      --http-log-path=PATH                 #指定訪問(wèn)日志目錄
      --pid-path=PATH                      #指向pid文件(nginx.pid)
      --lock-path=PATH                     #指向lock文件(nginx.lock)(安裝文件鎖定,防止安裝文件被別人利用,或自己誤操作。)
      --builddir=PATH                      #指向編譯目錄
      --http-client-body-temp-path=PATH    #設(shè)定http客戶端請(qǐng)求臨時(shí)文件路徑
      --http-proxy-temp-path=PATH          #設(shè)定http代理臨時(shí)文件路徑
      --http-fastcgi-temp-path=PATH        #設(shè)定http fastcgi臨時(shí)文件路徑
      --http-uwsgi-temp-path=PATH          #設(shè)定http uwsgi臨時(shí)文件路徑
      --http-scgi-temp-path=PATH           #設(shè)定http scgi臨時(shí)文件路徑
      
      --user=USER                          #指定程序運(yùn)行時(shí)的非特權(quán)用戶
      --group=USER                         #指定程序運(yùn)行時(shí)的非特權(quán)用戶組
      
      --with-rtsig_module                  #啟用rtsig模塊支持(實(shí)時(shí)信號(hào))
      --with-file-aio                      #啟用file aio支持(一種APL文件傳輸格式)
      --with-ipv6                          #啟用ipv6支持
      --with-select_module                 #啟用select模塊支持(一種輪詢模式,不推薦在高載環(huán)境下使用)禁用:--without-select_module
      --with-poll_module                   #啟用poll模塊支持(功能與select相同,與select特性相同,為一種輪詢模式,不推薦在高載環(huán)境下使用)
      --with-http_ssl_module               #啟用支持https請(qǐng)求,需已安裝openssl
      --with-http_realip_module            #啟用ngx_http_realip_module支持(這個(gè)模塊允許從請(qǐng)求標(biāo)頭更改客戶端的IP地址值,默認(rèn)為關(guān))
      --with-http_addition_module          #啟用ngx_http_addition_module支持(作為一個(gè)輸出過(guò)濾器,支持不完全緩沖,分部分響應(yīng)請(qǐng)求)
      --with-http_xslt_module              #啟用ngx_http_xslt_module支持(過(guò)濾轉(zhuǎn)換XML請(qǐng)求)
      --with-http_image_filter_module      #啟用支持傳輸JPEG/GIF/PNG 圖片過(guò)濾,默認(rèn)為不啟用,gd庫(kù)要用到
      --with-http_sub_module               #啟用ngx_http_sub_module支持(允許用一些其他文本替換nginx響應(yīng)中的一些文本)
      --with-http_dav_module               #啟用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:創(chuàng)建集合,COPY和MOVE方法)
      --with-http_flv_module               #啟用ngx_http_flv_module支持(提供尋求內(nèi)存使用基于時(shí)間的偏移量文件)
      --with-http_gzip_static_module       #啟用ngx_http_gzip_static_module支持(在線實(shí)時(shí)壓縮輸出數(shù)據(jù)流)
      --with-http_random_index_module      #啟用ngx_http_random_index_module支持(從目錄中隨機(jī)挑選一個(gè)目錄索引)
      --with-http_secure_link_module       #啟用ngx_http_secure_link_module支持(計(jì)算和檢查要求所需的安全鏈接網(wǎng)址)
      --with-http_degradation_module       #啟用ngx_http_degradation_module支持(允許在內(nèi)存不足的情況下返回204或444碼)
      --with-http_stub_status_module       #啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動(dòng)以來(lái)的工作狀態(tài))
      --with-http_perl_module              #啟用ngx_http_perl_module支持(該模塊使nginx可以直接使用perl或通過(guò)ssi調(diào)用perl)
      
      --with-mail                          #啟用POP3/IMAP4/SMTP代理模塊支持
      --with-mail_ssl_module               #啟用ngx_mail_ssl_module支持
      --add-module=                        #啟用外部模塊支持
      --with-cpu-opt=                      #指定編譯的CPU,可用的值為: pentium,opteron, amd64, sparc32, sparc64, ppc64等
      --with-pcre                          #啟用pcre庫(kù)(默認(rèn)會(huì)自動(dòng)去找rpm包安裝的pcre庫(kù)文件以及模塊)
      --with-pcre=                         #指向pcre庫(kù)文件目錄(如果是源碼安裝就需要指定,rpm包安裝就不需要指定了)
      --with-pcre-opt=                     #在編譯時(shí)為pcre庫(kù)設(shè)置附加參數(shù)
      --with-perl_modules_path=            #設(shè)定perl模塊路徑
      --with-perl=                         #設(shè)定perl庫(kù)文件路徑
      --with-debug                         #啟用debug日志
      
       

      安裝額外的echo模塊

      cd /opt
      git clone https://github.com/openresty/echo-nginx-module
      
       
      ./configure \
      --prefix=/etc/nginx \
      --sbin-path=/usr/sbin/nginx \
      --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 \
      --user=nginx \
      --group=nginx \
      --with-compat \
      --with-file-aio \
      --with-threads \
      --with-http_addition_module \
      --with-http_auth_request_module \
      --with-http_dav_module \
      --with-http_flv_module \
      --with-http_gunzip_module \
      --with-http_gzip_static_module \
      --with-http_mp4_module \
      --with-http_random_index_module \
      --with-http_realip_module \
      --with-http_secure_link_module \
      --with-http_slice_module \
      --with-http_ssl_module \
      --with-http_stub_status_module \
      --with-http_sub_module \
      --with-http_v2_module \
      --with-pcre \
      --with-mail \
      --with-mail_ssl_module \
      --with-stream \
      --with-stream_realip_module \
      --with-stream_ssl_module \
      --with-stream_ssl_preread_module \
      --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' \
      --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' \
      --add-module=/opt/echo-nginx-module
      
      
       

      執(zhí)行完后,會(huì)生成objs目錄

      目錄下的關(guān)鍵文件ngx_modules.c,它決定了我們編譯nginx時(shí),哪些模塊會(huì)被編譯進(jìn)nginx

      4.4 中間件介紹

      中間件放在objs/src目下

      4.5 編譯

      make -j 4
      
       
      • -j 參數(shù),指定編譯時(shí)的CPU數(shù)量,可加快編譯速度

      執(zhí)行完后,在objs目錄下生成二進(jìn)制可執(zhí)行文件

      注意:如何這時(shí),我們是升級(jí)nginx,現(xiàn)在就不需要make install

      4.6 安裝

      make install
      
       

      執(zhí)行完成后,會(huì)在--prefix目錄下生成四個(gè)目錄,我這里是/home/clay目錄下

      • conf: 配置文件目錄
      • html:默認(rèn)的靜態(tài)頁(yè)面存放目錄
      • logs:默認(rèn)access和error log存放目錄
      • sbin:二進(jìn)制可執(zhí)行文件nginx存放目錄

      安裝nginx,個(gè)人還是推薦yum源安裝(里面自動(dòng)包含了日志切割等)

      可以yum源安裝完成之后,再定制化模塊,二次編譯

      5 Nginx配置語(yǔ)法

      1. 配置文件由指令與指令塊構(gòu)成
      2. 每條指令以;分號(hào)結(jié)尾,指令與參數(shù)見(jiàn)以空格符號(hào)分隔
      3. 指令塊以{ }大括號(hào)將多條指令組織在一起
      4. include語(yǔ)句允許組合多個(gè)配置文件以提升可維護(hù)性
      5. 使用#符號(hào)添加注釋,提高可讀性
      6. 使用$符號(hào),使用變量
      7. 部分指令的參數(shù)支持正則表達(dá)式

      Example

      http {
          include mime.types;
          upstream thwp {
              server 127.0.0.1:8080;
          }
          
          server {
              listen 443 http2;
              # Nginx配置語(yǔ)法
              limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
              location ~* \.(gif|jpg|jpeg)$ {
                  proxy_cache my_cache;
                  expires 3m;proxy_cache_key $host$uri$is_args$args;
                  proxy_cache_valid 200 304 302 1d;
                  proxy_pass http://thwp;
              }
          }
      }
      
       

      5.1 配置參數(shù)

      5.1.1 時(shí)間單位

      • ms:milliseconds
      • s:seconds
      • m:minutes
      • h:hours
      • d:days
      • w:weeks
      • M:months,30 days
      • y:years,365 days

      5.1.2 空間單位

      • b/B:bytes
      • k/K:kilobytes
      • m/M:megabytes
      • g/G:gifabytes

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

      nginx配置文件如下:

      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      include /usr/share/nginx/modules/\*.conf;
      events {
          worker_connections 1024;
      }
      http {
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
          access_log  /var/log/nginx/access.log  main;
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 2048;
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
          include /etc/nginx/conf.d/\*.conf;
          server {
              listen       80 default_server;
              listen       [::]:80 default_server;
              server_name  _;
              root         /usr/share/nginx/html;
              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 {
              }
          }
      }
      
       

      6.1 基本結(jié)構(gòu)

      1. 全局塊
      2. events
      3. http

      在http塊中,又包含http全局塊、多個(gè)server塊。

      每個(gè)server塊中,可以包含server全局塊和多個(gè)location塊。

      在同一配置塊中嵌套的配置塊,各個(gè)之間不存在次序關(guān)系。

      配置文件支持大量可配置的指令,絕大多數(shù)指令不是特定屬于某一個(gè)塊的。同一個(gè)指令放在不同層級(jí)的塊中,其作用域也不同,一般情況下,高一級(jí)塊中的指令可以作用域自身所在的塊和此塊包含的所有低層級(jí)塊。如果某個(gè)指令在兩個(gè)不同層級(jí)的塊中同時(shí)出現(xiàn),則采用“就近原則”,即以較低層級(jí)塊中的配置為準(zhǔn)。

      6.2 全局塊

      通常包括配置運(yùn)行Nginx服務(wù)器的用戶(組)、允許生成的worker process數(shù)、Nginx進(jìn)程PID存放路徑、日志的存放路徑和類型以及配置文件引入等。

      6.3 events塊

      events塊涉及的指令主要影響Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接。常用到的設(shè)置包括是否開(kāi)啟對(duì)多worker process下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接,選取哪種事件驅(qū)動(dòng)模型處理連接請(qǐng)求,每個(gè)worker process可以同時(shí)支持的最大連接數(shù)等。

      這一部分的指令對(duì)Nginx服務(wù)器的性能影響較大,在實(shí)際配置中應(yīng)該根據(jù)實(shí)際情況靈活調(diào)整。

      6.4 http塊

      http塊是Nginx服務(wù)器配置中重要部分,代理、緩存和日志定義等絕大多數(shù)的功能和第三方模塊可以放在這個(gè)模塊中。

      • http
      • upstream
      • server
      • location

      6.5 server塊

      server塊和“虛擬主機(jī)”的概念密切聯(lián)系。為了加深相關(guān)配置的理解,在介紹server塊之前,簡(jiǎn)單了解一下虛擬主機(jī)的相關(guān)內(nèi)容。

      虛擬主機(jī),又稱虛擬服務(wù)器、主機(jī)空間或網(wǎng)頁(yè)空間,它是一種技術(shù)。該技術(shù)是為了節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本而出現(xiàn)的。這里的“主機(jī)”或“空間”是由實(shí)體的服務(wù)器延伸而來(lái),硬件系統(tǒng)可以基于服務(wù)器群,或者單個(gè)服務(wù)器等。對(duì)外表現(xiàn)為多個(gè)服務(wù)器,從而充分利用服務(wù)器硬件資源。從用戶角度看,一臺(tái)虛擬主機(jī)和一臺(tái)獨(dú)立的硬件主機(jī)是完全一樣的。

      在使用Nginx服務(wù)器提供Web服務(wù)是,利用虛擬主機(jī)的技術(shù)就可以避免為每一個(gè)要運(yùn)行的網(wǎng)站提供單獨(dú)的Nginx服務(wù)器,也無(wú)需為每個(gè)網(wǎng)站對(duì)應(yīng)運(yùn)行一組Nginx進(jìn)程。虛擬主機(jī)技術(shù)使得Nginx服務(wù)器可以在同一臺(tái)服務(wù)器上只運(yùn)行一組Nginx進(jìn)程,就可以運(yùn)行多個(gè)網(wǎng)站。

      和http塊相同,server塊也可以包含自己的全局塊,同時(shí)可以包含多個(gè)location塊。在server全局塊中,最常見(jiàn)的兩個(gè)配置項(xiàng)是本虛擬主機(jī)的監(jiān)聽(tīng)配置和本虛擬主機(jī)的名稱或IP配置。

      6.6 location塊

      每個(gè)server塊中可以包含多個(gè)location塊。從嚴(yán)格意義上說(shuō),location其實(shí)是server塊的一個(gè)指令,只是由于其在整個(gè)Nginx配置文檔中起著重要的作用,而且Nginx服務(wù)器在許多功能上的靈活性往往在location指令的配置中體現(xiàn)出來(lái)。

      7 Nginx命令行

      1. 格式:nginx -s reload
      2. 幫助:-? -h
      3. 使用指定的配置位置:-c
      4. 指定配置指令:-g
      5. 指定運(yùn)行目錄:-p
      6. 發(fā)送信號(hào):-s
        • 立刻停止服務(wù):stop
        • 優(yōu)雅的停止服務(wù):quit
        • 重載配置文件:reload
        • 重新開(kāi)始記錄日志文件:reopen
      7. 測(cè)試配置文件是否有語(yǔ)法錯(cuò)誤:-t -T
      8. 打印nginx的版本信息、編譯信息:-v -V

      7.1 重載配置文件

      nginx -s reload
      
       

      7.2 熱部署

      只是更換二進(jìn)制文件

      1. 備份舊的nginx文件
      cd /home/clay/sbin/
      cp nginx nginx.old
      
       

      2)將新的編譯好的二進(jìn)制文件,替換掉現(xiàn)在正在運(yùn)行的二進(jìn)制文件

      首先重新編譯出一個(gè)nginx二進(jìn)制可執(zhí)行文件,./configure然后make,千萬(wàn)不要make install,執(zhí)行那make就可以了

      cd /opt/nginx-1.16.1/
      cp -f objs/nginx /home/clay/sbin/
      
       

      3)給master進(jìn)程發(fā)送USR2信號(hào)

      # ps -ef|grep nginx
      root      6159 57006  0 11:18 pts/0    00:00:00 grep --color=auto nginx
      root     63076     1  0 09:46 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      nobody   63103 63076  0 09:46 ?        00:00:00 nginx: worker process
      
       
      # kill -USR2 63076
      
       
      # ps -ef|grep nginx
      root      6216 63076  0 11:19 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      nobody    6217  6216  0 11:19 ?        00:00:00 nginx: worker process
      root      6225 57006  0 11:19 pts/0    00:00:00 grep --color=auto nginx
      root     63076     1  0 09:46 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      nobody   63103 63076  0 09:46 ?        00:00:00 nginx: worker process
      
       
      # netstat -nplt| grep 80
      tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6216/nginx: master  
      
       

      4)關(guān)閉舊的woker進(jìn)程,kill -WINCH舊的master進(jìn)程號(hào)

      # kill -WINCH 63076
      # ps -ef|grep nginx
      root      6216 63076  0 11:19 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      nobody    6217  6216  0 11:19 ?        00:00:00 nginx: worker process
      root      6842 57006  0 11:28 pts/0    00:00:00 grep --color=auto nginx
      root     63076     1  0 09:46 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      
       

      5)關(guān)閉舊的master進(jìn)程,kill -QUIT舊的master進(jìn)程號(hào)

      # kill -QUIT 63076
      # ps -ef|grep nginx
      root      6216     1  0 11:19 ?        00:00:00 nginx: master process /home/clay/sbin/nginx
      nobody    6217  6216  0 11:19 ?        00:00:00 nginx: worker process
      root      6947 57006  0 11:30 pts/0    00:00:00 grep --color=auto nginx
      
       

      7.3 切割日志文件

      1)mv掉原來(lái)的日志

      mv access.log access.log.bak
      
       

      2)重新打開(kāi)日志文件

      nginx -s reopen
      
       

      簡(jiǎn)單說(shuō)明一下:

      1、在沒(méi)有執(zhí)行kill -USR1 cat ${pid_path}之前,即便已經(jīng)對(duì)文件執(zhí)行了mv命令也只是改變了文件的名稱,nginx還是會(huì)向新命名的文件” access.log.20161024”中照常寫(xiě)入日志數(shù)據(jù)。原因在于linux系統(tǒng)中,內(nèi)核是根據(jù)文件描述符來(lái)找文件的

      2、USR1是自定義信號(hào),也就是進(jìn)程編寫(xiě)者自己確定收到這個(gè)信號(hào)該干什么。而在nginx中它自己編寫(xiě)了代碼當(dāng)接到USR1信號(hào)的時(shí)候讓nginx重新打開(kāi)日志文件(重新打開(kāi)的日志就是配置文件中設(shè)置的位置和名稱)。

      posted @ 2024-07-09 15:06  david_cloud  閱讀(22)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 囯产精品久久久久久久久久妞妞| 久久99精品久久久学生| 色婷婷欧美在线播放内射| 国产激情国产精品久久源| 图片区小说区av区| 国产综合色产在线精品| 国产精品永久在线观看| 四虎国产精品永久地址99| 国产偷国产偷亚洲综合av| 国产精品免费观看色悠悠| 精品中文人妻在线不卡| 久久亚洲av成人无码软件| 午夜福利免费区在线观看| 精品中文字幕一区在线| 亚洲人成电影网站色mp4| 日韩中文字幕高清有码| 国产永久免费高清在线| 97久久精品无码一区二区天美| 国产精品不卡一区二区久久| 色综合久久天天综线观看| 一区二区三区日本久久九| 么公的好大好硬好深好爽视频 | 成人午夜在线观看日韩| 人妻少妇中文字幕久久| 男人的天堂av社区在线| 少妇激情一区二区三区视频小说| 又色又污又爽又黄的网站| 国产粉嫩高中无套进入| 亚洲首页一区任你躁xxxxx| 国产一区二区一卡二卡| 亚洲熟妇国产熟妇肥婆| 欧美精品久久天天躁| 小嫩模无套内谢第一次| 国产精品丝袜一区二区三区| 亚洲精品亚洲人成人网| 日本道高清一区二区三区| 夜爽8888视频在线观看| 黑人异族巨大巨大巨粗| 国产中年熟女高潮大集合| 亚洲人成18在线看久| 国产一卡2卡三卡4卡免费网站|