亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Nginx常見用法總結(jié)(面試必備)

Nginx在日常開發(fā)過程中主要作為靜態(tài)資源服務(wù)器(http服務(wù)器)和反向代理服務(wù)器。

Nginx常用變量

  • $host: 請求的主機頭Nginx常見用法總結(jié)(面試必備)
    • $remote_addr: 客戶端IP地址
    • $remote_port: 客戶端端口號
    • $remote_user: 已經(jīng)經(jīng)過Auth Basic Module驗證的用戶名
    • $http_referer: 請求引用地址
    • $http_user_agent: 客戶端代理信息(UA)
    • $http_x_forwarded_for: 相當(dāng)于網(wǎng)絡(luò)訪問路徑
    • $body_bytes_sent: 頁面?zhèn)魉偷淖止?jié)數(shù)
    • $time_local: 服務(wù)器時間
    • $request: 客戶端請求
    • $request_uri: 請求的URI,帶參數(shù), 不包含主機名
    • $request_filename: 請求的文件路徑
    • $request_method: 請求的方法,如GET、POST
    • $args: 客戶端請求中的參數(shù)
    • 等同于args, 客戶端請求的參數(shù)
    • $nginx_version: 當(dāng)前nginx版本
    • $status: 服務(wù)器響應(yīng)狀態(tài)碼
    • $server_addr: 服務(wù)器地址
    • $server_port: 請求到達的服務(wù)器端口號
    • $server_protocol: 請求的協(xié)議版本
    • $content_type: HTTP請求信息里的Content-Type字段
    • $content_length: HTTP請求信息里的Content-Length字段
    • 請求中的當(dāng)前不帶請求參數(shù),參數(shù)位于args)
    • $document_root: 當(dāng)前請求在root指令中指定的值
    • 與uri相同

    定義日志格式示例:

    Nginx常見用法總結(jié)(面試必備)

    Nginx設(shè)置重定向

    return形式

    Nginx常見用法總結(jié)(面試必備)

    rewrite形式

    Nginx常見用法總結(jié)(面試必備)

    rewrite flag說明:

    • last: 停止處理后續(xù)rewrite指令集,然后對當(dāng)前重寫的新URI在rewrite指令集上重新查找
    • break: 停止處理后續(xù)rewrite指令集,并不在重新查找,但是當(dāng)前l(fā)ocation內(nèi)剩余非rewrite語句和location外的非rewrite語句可以執(zhí)行
    • redirect: 如果replacement不是以http:// 或https://開始,返回302臨時重定向
    • permant: 返回301永久重定向

    Nginx條件判斷

    if判斷

    Nginx常見用法總結(jié)(面試必備)

    比較符說明:

    • 使用=、!= 比較的一個變量和字符串,true/false
    • 使用~、~*與正則表達式匹配的變量,如果這個正則表達式中包含右花括號}或者分號;則必須給整個正則表達式加引號
    • 使用-f、!-f 檢查一個文件是否存在
    • 使用-d、!-d 檢查一個目錄是否存在
    • 使用-e、!-e 檢查一個文件、目錄、符號鏈接是否存在
    • 使用-x、!-x 檢查一個文件是否可執(zhí)行set設(shè)置變量Nginx常見用法總結(jié)(面試必備)

      Nginx反向代理

      proxy_pass

      Nginx常見用法總結(jié)(面試必備)

      fastcgi_pass

      fastcgi_pass將請求傳遞給FastCGI服務(wù)器

      Nginx常見用法總結(jié)(面試必備)

      uwsgi_pass

      uwsgi_pass將請求傳遞給uwsgi服務(wù)器(如python服務(wù))

      scgi_pass

      scgi_pass將請求傳遞給SCGI服務(wù)器

      memcached_pass

      memcached_pass將請求傳遞給memcached服務(wù)器

      Nginx負(fù)載均衡

      Nginx通過proxy_pass和upstream指令實現(xiàn)負(fù)載均衡,Nginx原生支持的負(fù)載均衡算法有如下幾種:

      輪詢

      每個請求按時間順序逐一分配到不同的應(yīng)用服務(wù)器,如果應(yīng)用服務(wù)器down掉,自動剔除,剩下的繼續(xù)輪詢

      權(quán)重

      通過配置權(quán)重,指定輪詢幾率,權(quán)重和訪問比率成正比,用于應(yīng)用服務(wù)器性能不均的情況

      ip_hash

      每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個應(yīng)用服務(wù)器,可以解決session共享的問題。

      least_conn

      最小連接數(shù)

      示例:

      Nginx常見用法總結(jié)(面試必備)

      Nginx緩存

      Proxy Cache

      Nginx通過proxy_cache來實現(xiàn)緩存。Buffer和Cache都是用于提供IO吞吐小路的,但是概念不同。Buffer(緩沖)主要用于傳輸效率不同步或者優(yōu)先級不相同的設(shè)備之間傳輸數(shù)據(jù),一般通過對一方數(shù)據(jù)進行臨時存放,再統(tǒng)一發(fā)送的辦法傳遞給另一方,以降低進程之間的等待時間,保證速度較快的進程不發(fā)生間斷,臨時存放的數(shù)據(jù)一旦傳送給另一方,這些數(shù)據(jù)本身也就沒有用處了;Cache(緩存)主要用于將硬盤上已有的數(shù)據(jù)在內(nèi)存中建立緩存數(shù)據(jù),提高數(shù)據(jù)的訪問效率,對于過期不用的緩存可以隨時銷毀。

      Proxy Cache機制依賴于Proxy Buffer機制,只有在Proxy Buffer機制開啟的情況下Proxy Cache的配置才會發(fā)揮作用。

      相關(guān)配置參數(shù)說明:

      • proxy_cache: zone | off; # 默認(rèn)為off,即關(guān)閉proxy_cache功能,zone為用于存放緩存的內(nèi)存區(qū)域名稱
      • proxy_cache_path: path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size];
      • path設(shè)置緩存數(shù)據(jù)存放的路徑;
      • levels設(shè)置目錄層級,如levels=1:2,表示有兩級子目錄,第一個目錄名取md5值的倒數(shù)第一個值,第二個目錄名取md5值的第2和3個值。
      • keys_zone設(shè)置內(nèi)存zone的名字和大小,如keys_zone=my_zone:10m
      • inactive設(shè)置緩存多長時間就失效,當(dāng)硬盤上的緩存數(shù)據(jù)在該時間段內(nèi)沒有被訪問過,就會失效了,該數(shù)據(jù)就會被刪除,默認(rèn)為10s。
      • max_size設(shè)置硬盤中最多可以緩存多少數(shù)據(jù),當(dāng)?shù)竭_該數(shù)值時,nginx會刪除最少訪問的數(shù)據(jù) 示例:Nginx常見用法總結(jié)(面試必備)ExpiresNginx常見用法總結(jié)(面試必備)

        Nginx實現(xiàn)Gzip壓縮

        通過gzip相關(guān)指令可以配置Gzip壓縮,對響應(yīng)數(shù)據(jù)進行在線實時壓縮。

        相關(guān)配置參數(shù)說明:

        • gzip: on; # 開啟或關(guān)閉gzip功能,默認(rèn)為off
        • gzip_buffers: 16 8K; # 配置Gzip壓縮文件時使用的緩存空間大小,默認(rèn)number*size=128K
        • gzip_comp_level: 9; # 壓縮級別,壓縮程度越高,壓縮效率最低,最費時間
        • gzip_min_length:# 配置最小壓縮的數(shù)據(jù)大小,如果響應(yīng)頁面的大小大于該值,才開啟Gzip功能(一些小文件會導(dǎo)致壓縮后的大小比源文件還大),默認(rèn)為20,建議設(shè)置為1k(1024)
        • gzip_http_version:1.0; # 配置只有高于指定版本的HTTP協(xié)議才能開啟Gzip,默認(rèn)為1.1, 目前絕大多數(shù)瀏覽器都支持Gzip自解壓,一般采用默認(rèn)值即可
        • gzip_proxied:any; # 設(shè)置是否對被代理服務(wù)器返回的數(shù)據(jù)進行壓縮,默認(rèn)為off
        • gzip_vary: on; # 開啟壓縮標(biāo)記,開啟后在響應(yīng)頭部添加 Vary: Accept-Encoding,默認(rèn)為off
        • gzip_types:text/plain application/x-javascript text/css application/xml text/javascript; # 對指定類型的文檔進行Gzip壓縮
        • gzip_static:on; # 對于存在服務(wù)器上.gz作為后綴的文件,且客戶端瀏覽器支持gzip壓縮,就直接返回壓縮后的數(shù)據(jù) 示例:Nginx常見用法總結(jié)(面試必備)

          Nginx常見配置參數(shù)

          • server_names_hash_max_size 1024;
          • server_names_hash_bucket_size 512;
          • client_header_buffer_size 32k; # 客戶端請求頭部的緩沖區(qū)大
          • large_client_header_buffers 4 32k;
          • client_max_body_size 10m;#設(shè)置最大的允許客戶端請求主體的大小(上傳文件大小限制), 默認(rèn)為1m
          • client_body_buffer_size 128k;
          • keepalive_timeout 60; #客戶端連接超時時間,單位是秒, 默認(rèn)是75秒
          • sendfile on; # 開啟高效傳輸模式,默認(rèn)為off
          • tcp_nopush on;
          • tcp_nodelay on;
          • ssi on; # 開啟ssi支持,默認(rèn)為false
          • ssi_silent_errors on; # 設(shè)置為on表示在處理ssi文件時不輸出錯誤信息,默認(rèn)為false
          • ssi_types text/html; # 默認(rèn)支持html ,如果需要支持shtml(服務(wù)器執(zhí)行腳本),需要設(shè)置為ssi_types text/shtml
          • server_tokens off; # 關(guān)閉nginx版本號的顯示,默認(rèn)為on

          Nginx優(yōu)化相關(guān)參數(shù)

          • worker_processes 2; # 配置生成的worker process數(shù)量,一般為cpu核數(shù)
          • worker_rlimit_nofile 65536; # 一個nginx進程打開的最多文件描述符數(shù)目,一般設(shè)置為與系統(tǒng)設(shè)定的值相同(ulimit -n)
          • worker_cpu_affinity 01 10;# 為每個進程分配CPU的工作內(nèi)核
          • use epoll; # 事務(wù)模型Nginx常見用法總結(jié)(面試必備)

            Nginx常見用法

            依據(jù)UA屏蔽爬蟲

            Nginx常見用法總結(jié)(面試必備)

          屏蔽IP訪問

          Nginx常見用法總結(jié)(面試必備)使用Auth權(quán)限訪問Nginx常見用法總結(jié)(面試必備)限制帶寬Nginx常見用法總結(jié)(面試必備)限制連接Nginx常見用法總結(jié)(面試必備)限制請求Nginx常見用法總結(jié)(面試必備)

          實時顯示Nginx運行狀況

          在安裝nginx是編譯http_stub_status_module即可,使用參數(shù)為–with-http_stub_status_module

          Nginx常見用法總結(jié)(面試必備)設(shè)置錯誤頁面Nginx常見用法總結(jié)(面試必備)

          Nginx 常見錯誤碼

          • 301 永久重定向
          • 302 臨時重定向
          • 403 禁止訪問
          • 404 文件不存在
          • 413 文件上傳超過限制
          • 500 服務(wù)器錯誤
          • 502 后臺服務(wù)器無響應(yīng)
          • 504 Nginx超時,請求過多,工作進程不足
            文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!