站長資訊網
最全最豐富的資訊網站

nginx 代理服務指令詳解

nginx 正向代理與反向代理說明圖

  nginx 代理服務指令詳解

超級形象說明

正向代理指令: 

   1, resolver

    這個用于DNS服務器的ip . DNS服務器的主要工作是進行域名解析,將域名映射為對應IP地址

    resolver address …  [valid = time ]

        address ,   DNS 服務器的ip地址, 不指定的話默認53

        time 設置數據包在網絡中的有效時間.

      例: resolver 127.0.0.1 [::1]:52113 valids

   2, resolver_timeout 

    設置DNS服務器域名解析超時時間

    語法結構: resolver_timeout  time;

   3, proxy_pass

    設置代理服務器的協議和地址,可以用于反向代理服務

    proxy_pass URL

          URL  為設置的代理服務器協議和地址

反向代理基本指令

    1,  proxy_pass

    設置代理服務器的協議和地址

    proxy_pass URL

          URL  為設置的代理服務器協議和地址

    使用這個指令時要注意:

    如果指令URL中變量不含有URI轉向地址會只改變URL

    如果指令URL中變量含有URI轉向地址會全部改變

     

    如果配置指令url后面帶有/ 那么跳轉同理

    2, proxy_hide_header 指令

    用于設置Nginx服務器發送http相應時,隱藏一些頭域信息

      proxy_hide_header field;

      field 為需要隱藏的頭域. 可以用于 http  server  localtion

    3,proxy_pass_header 指令

      默認Nginx 服務器在發送響應報文時,報文不包含 date server X-accel 等來自被代理服務器的頭域信息,

      該指令可以設置這些頭域信息已被發送

      proxy_pass_header filed;

      field 為需要隱藏的頭域. 可以用于 http  server  localtion

    4, proxy_pass_request_body

      配置是否將客戶端請求體發送給代理服務器

      proxy_pass_request_body on | off  可以用于 http  server  localtion

    5,proxy_pass_request_header 

      配置是否將客戶端的請求頭發送給代理服務器

      proxy_pass_request_header 可以用于 http  server  localtion

    6, proxy_set_header

      用于更改Nginx服務器接收到的客戶端請求的請求頭,然后將新的請求頭發送給被代理服務器

      proxy_set_header filed value

      field 要更改的信息所在的頭域

      value  更改的值

    7, proxy_set_body

      更改Nginx服務器接收到的客戶端請求的請求體信息,然后將新的請求體發送給被代理的服務器 

      proxy_set_body value 

      value 為更改的信息

    8, proxy_bind 

      強制將與代理主機的連接綁定到指定的ip主機

      proxy_bind address 

      address 為IP地址

    9, proxy_connect_timout

      用于配置Nginx服務器與后端被代理服務器嘗試連接的超時時間

      proxy_connect_timout time 默認時間時60秒

    10, proxy_read_timeout

      用于配置Nginx服務器向后端被代理服務器(組)發出read請求后,等待響應的超時時間

      proxy_read_timeout time; 默認時間時60秒

    11, proxy_send_timeout

         用于配置Nginx服務器向后端被代理服務器(組)發出write請求后,等待響應的超時時間

      proxy_send_timeout time;默認時間時60秒

    12, proxy_http_version

      用于設置Nginx服務器提供代理服務器的HTTP協議版本

      proxy_http_version 1.0 | 1.1 |2.0

    13, proxy_method

      用于設置Nginx服務器請求貝代理服務器使用的請求方法,設置了這個客戶端的請求方法將會被忽略

      proxy_method method

      method 設置 POST | GET

     14 proxy_ignore_client_abort

      用于設置在客戶端中斷網絡請求的時候,Nginx服務器是否中斷對被代理服務器的請求,

      proxy_ignore_client_abort on | off 

     15, proxy_ignore_headers

      用于設置一些HTTP相應頭的頭域,

      proxy_ignore_headers filed … 

      filed 為要設置的HTTP相應頭的頭域信息,例如”X-Accel-Redirect” “X-Accel-Expires” “Expores ”  “Cache-Control ” “Set-Cookie”

     16, proxy_redirect

      用于修改被代理服務器返回的相應頭中的location和Refresh 與 proxy_pass指令配合使用

      語法結構:

        proxy_redirect   redirect replacement

        proxy_redirect   default

        proxy_redirect off

                 redirect  匹配localtion頭域值的字符串

                  replacement 用于替換redirect變量的字符串

         假設前端url是example.com。后端server域名是csdn123.com,那么后端server在返回refresh或location的時候,host為csdn123.com,顯然這個信息直接返回給客戶端是不行的,需要nginx做轉換,這時可以設置:

          proxy_redirect http://csdn123.com

nginx會將host及port部分替換成自身的server_name及listen port。不過這種配置對server_name有多個值的情況下支持不好。
我們可以用nginx內部變量來解決這一問題:

        proxy_redirect http://csdn123.com http://$host:$server_port

     17, proxy_intercept_errors

        配置一個狀態的開啟或者關閉

        proxy_intercept_errors on | off

     18, proxy_headers_hash_max_size

        存放HTTP報文頭的哈希表的容量

        proxy_headers_hash_max_size size; 默認大小512

     19, proxy_headers_hash_bucket_size

        Nginx服務器申請存放HTTP報文頭的哈希表容量的單位大小

        proxy_headers_hash_max_size 64;

     20, proxy_next_upstream

        如果Nginx定義了 upstream 后端服務器組,如果組內有異常情況,將請求順次交給下一個組內服務器處理

        proxy_next_upstream status...

        status: error,timeout,invalid_header,http_500 502 503 504 404,off

     21, proxy_ssl_session_reuse

        該指令用于配置是否使用基于SSL安全協議的會話連接(htts://)被代理服務器,

        proxy_ssl_session_reuse on | off; 默認on

 

Proxy Buffer 指令詳解:

     22,  proxy_buffering

        用于配置是否啟用或者關閉proxybuff

        proxy_buffering on | off

??    23,  proxy_buffers 

        用于配置接收一次被代理服務器響應數據的Proxy Buffer個數和每個Buffer的大小.

        proxy_buffers number size;

        size一般設置為內存頁大小.根據平臺的不同,取值可能為4KB或者8KB

        proxy_buffers 8 4KB|8KB;

     24,   proxy_buffer_size

        用于配置從被代理服務器獲取的第一部分響應數據的大小,默認為4k或者8k,保持與proxy_buffers指令中的size變量相同.

     25.  proxy_busy_buffers_size

        用于限制同時處于BUSY狀態的Proxy Buffer的總大小.
  
        proxy_busy_buffers_size size;

        size為設置處于BUSY狀態的緩存區總大小.默認為8KB或者16KB.
     26.      proxy_temp_path

        用于配置磁盤上的一個文件路徑,用于臨時存放被代理服務器的大體積響應數據.如果Proxy Buffer被裝滿后,響應數據仍然沒有被Nginx服務器完全接收,之后響應的數據就會被臨時存放在該文件中.語法結構為:

        proxy_temp_path path [level1 [level2 [level3]]]

      * path 磁盤上臨時存放文件的路徑
      * levelN 緩存文件存放在設置的路徑的第幾級hash目錄中

    27.   proxy_max_temp_file_size

        用于設置所有臨時文件的總大小.

        proxy_max_temp_file_size size;

        默認為:1024MB
    28.   proxy_temp_file_write_size

        用于配置同時寫入臨時文件的數據量的總大小

        proxy_temp_file_write_size size;

        默認設置根據平臺的不同,可以為8KB或者16KB,一般與平臺的內存也大小相同.

 

Proxy Cache  配置指令        

     29,   proxy_cache

             用于配置一塊公用的內存區域的名稱,該區域可以存放緩存的索引數據.這些數據在Nginx服務器啟動時由緩存索引重建進程負責建立,在Nginx服務器的整個運行過程中由緩存管理進程負責定時檢查過期數據、檢索等管理工作.語法結構為:

           proxy_cache zone | off;

                        zone 設置用于存放緩存索引的內存區域的名稱
                        off 關閉proxy_cache功能,默認設置

     30,   proxy_cache_bypass

           用于配置Nginx在響應客戶端時不從緩存中獲取數據的條件.語法結構為:

           proxy_cache_bypass string …;

           其中,string為條件變量,支持配置多個,當至少有一個字符串指令不為空或者不等于0時,響應數據不從緩存中獲取.

   例子:

             proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment $http_pragma $http_authorization;

     31,   proxy_cache_key

             用于配置Nginx服務器在內存中為緩存數據建立索引時使用的關鍵字.默認為:

             proxy_cache_key $scheme$proxy_host$uri$is_args$args
         proxy_cache_lock
       
            用于配置是否開啟緩存的鎖功能.在緩存中,某些數據項可以同時被多個請求返回的響應數據填充,開啟該功能后,Nginx服務器同時只能有一個請求填充緩存中的某一數據項.如果其他請求也想填充該數據項,必須等待該數據項的鎖被釋放.這個等待的時間由proxy_cache_lock_timeout指令設置.
       默認值為off,表示關閉鎖功能.
     32 ,       proxy_cache_lock_timeout

           用于配置開啟鎖功能以后鎖的超時時間.默認為5s.
    33,     proxy_cache_in_uses

           當客戶端向被代理的服務器發送相同的請求達到該指令設定的次數后,Nginx服務器才對該其更年期的響應數據做緩存.默認為1

    34,    proxy_cache_path

           用于設置Nginx服務器存儲緩存數據的路徑以及和緩存索引相關的內容,語法結構為:

         proxy_cache_path path [levels=levels] keys_zone=name:size1 [inactive=time1]  [max_size=size2] [loader_files=number] [loader_sleep=time2] [loader_threshold=time3];

              path 設置緩存存放的根路徑
             levels 設置相對于path指定目錄的第幾級hash目錄中緩存數據.levels=1,表示一級hash目錄;levels=1:2,表示兩極目錄,以此類推.該目錄是基于請求URL通過哈希算法得到的.
              name:size1 Nginx服務器的緩存索引重建進程在內存中為緩存數據建立索引,這一對變量用來設置存放緩存索引的內存區域的名稱和大小.
             time1 設置強制更新緩存數據的時間,當緩存數據在設定的時間內沒有被訪問時,Nginx服務器就強制從硬盤上將其刪除,下次客戶端訪問該數據時重新緩存.默認為10s.
            size2 設置緩存數據大小.當緩存的大小超過該變量的設置時,索引管理進程將根據最近最少被訪問的策略刪除緩存.
            number 設置緩存索引重建進程每次加載的數據元素的數量上限.默認為100
             time2 設置緩存索引重建進程在一次遍歷結束后下一次遍歷開始之間暫停的時長,默認為50ms.
             time3 設置遍歷一次磁盤緩存源數據的時間上限.默認為200ms.

           該指令比較復雜,一般需要設置前面3個指令的情形比較多,后面幾個變量與Nginx服務器緩存索引重建進程以及管理進程性能有關,一般情況下保持默認設置就可以了.

        例子:

             proxy_cache_path /data/nginx/cache/a levels=1 keys_zone=a:10m;
             proxy_cache_path /data/nginx/cache/b levels=2:2 keys_zone=b:100m;
            proxy_cache_path /data/nginx/cache/c levels=1:1:2 keys_zone=c:1000m;

               ==該指令只能放在http塊中==
     35   proxy_cache_use_stale

           指定在那種情況下,當被代理的服務器無法訪問或者訪問錯誤等現象時,Nginx服務器可以使用歷史緩存響應客戶端的請求.語法結構為:

           proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | off …;

           默認為off

    36,    proxy_cache_valid

             該指令可以針對不能的HTTP響應狀態設置不同的緩存時間,語法結構為:

             proxy_cache_valid [code …] time;

                 code 設置HTTP響應的狀態碼,可選,默認只為響應嗎是200 301 302的響應數據做緩存.可以使用 ‘any’ 表示緩存所有該指令中未設定的其他響應數據
        time 緩存時間
  
       例子:

            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 301 1h;
              proxy_cache_valid any 10m;

            第三個例子表示對返回狀態為不是200 301 302的響應數據緩存10分鐘.
    37   proxy_no_cache
   
配置在什么情況下不使用cache功能.語法結構為:

          proxy_no_cache string …;

        其中,string可以是一個或者多個變量,當string的值不為空或者不為’0’時,不啟用cache功能.
    38     proxy_store

         配置是否在本地磁盤緩存來自被代理服務器的響應數據.語法結構為:

    39           proxy_store on | off | string;

            on | off 設置是否開啟Proxy Store功能.如果開啟,緩存文件會存放到alias指令或root指令設置的本地路徑.默認為off
           string 自定義緩存文件存放路徑.使用該配置時,默認開啟Proxy Store.

    40   proxy_store_access

        用于設置用戶或用戶組對Proxy Store緩存文件的訪問權限,語法結構為:

        proxy_store_access users:permissions …;

                   users 可以設置為user、group或者all
                    permission 設置方位權限

          例子:

                proxy_store on;
                proxy_store_access user:rw group:rw all:r;
                root /data/www;

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
无码精品尤物一区二区三区| 久久国产精品61947| 日韩十八禁一区二区久久| 亚洲精品天堂无码中文字幕| 亚洲精品二三区伊人久久| 91精品国产自产在线观看永久∴ | 国产午夜无码精品免费看| 精品无码国产污污污免费网站国产 | 久久这里只精品99re66| 51视频精品全部免费最新| 漂亮人妻被黑人久久精品| 久久九九久精品国产日韩经典| 秋霞午夜鲁丝片午夜精品久| 国产亚洲精品资源在线26u| 亚洲精品白浆高清久久久久久| 国产综合精品久久亚洲| 久久亚洲AV永久无码精品| 久久精品国产清自在天天线| 国产91在线精品| 国产情侣大量精品视频| 国产精品婷婷午夜在线观看| 亚洲精品美女久久久久99小说| 日韩一区二区精品观看| 无码人妻一区二区三区精品视频 | 久久乐国产综合亚洲精品| 最新露脸国产精品视频| 久九九精品免费视频| 国产精品自在自线视频| 国产手机精品一区二区| 亚洲国产成人精品无码区花野真一 | 精品久久人人爽天天玩人人妻| 亚洲国产成人精品女人久久久| 老湿机一区午夜精品免费福利| 女人高潮内射99精品| 婷婷成人国产精品| 国产精品1024在线永久免费| 精品久久人人做人人爽综合| 99久久精品国产麻豆| 国产午夜亚洲精品午夜鲁丝片| 亚洲精品午夜无码专区| 亚洲AV午夜福利精品一区二区|