久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

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

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

Nginx常用變量

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

    定義日志格式示例:

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

    Nginx設置重定向

    return形式

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

    rewrite形式

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

    rewrite flag說明:

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

    Nginx條件判斷

    if判斷

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

    比較符說明:

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

      Nginx反向代理

      proxy_pass

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

      fastcgi_pass

      fastcgi_pass將請求傳遞給FastCGI服務器

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

      uwsgi_pass

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

      scgi_pass

      scgi_pass將請求傳遞給SCGI服務器

      memcached_pass

      memcached_pass將請求傳遞給memcached服務器

      Nginx負載均衡

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

      輪詢

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

      權重

      通過配置權重,指定輪詢幾率,權重和訪問比率成正比,用于應用服務器性能不均的情況

      ip_hash

      每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個應用服務器,可以解決session共享的問題。

      least_conn

      最小連接數

      示例:

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

      Nginx緩存

      Proxy Cache

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

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

      相關配置參數說明:

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

        Nginx實現Gzip壓縮

        通過gzip相關指令可以配置Gzip壓縮,對響應數據進行在線實時壓縮。

        相關配置參數說明:

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

          Nginx常見配置參數

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

          Nginx優化相關參數

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

            Nginx常見用法

            依據UA屏蔽爬蟲

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

          屏蔽IP訪問

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

          實時顯示Nginx運行狀況

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

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

          Nginx 常見錯誤碼

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

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 铁岭县| 渝中区| 通州区| 马尔康县| 镇赉县| 博罗县| 若尔盖县| 清涧县| 确山县| 乌什县| 上饶县| 连山| 稻城县| 清丰县| 甘泉县| 南陵县| 彭水| 广灵县| 岳阳县| 锦屏县| 高尔夫| 宽甸| 岫岩| 巧家县| 广东省| 德化县| 涞源县| 连平县| 鹤岗市| 吉木萨尔县| 丹江口市| 思南县| 北海市| 青阳县| 六盘水市| 五常市| 榆树市| 海伦市| 屯昌县| 平昌县| 松原市|