站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        nginx 代理服務(wù)指令詳解

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

          nginx 代理服務(wù)指令詳解

        超級(jí)形象說明

        正向代理指令: 

           1, resolver

            這個(gè)用于DNS服務(wù)器的ip . DNS服務(wù)器的主要工作是進(jìn)行域名解析,將域名映射為對(duì)應(yīng)IP地址

            resolver address …  [valid = time ]

                address ,   DNS 服務(wù)器的ip地址, 不指定的話默認(rèn)53

                time 設(shè)置數(shù)據(jù)包在網(wǎng)絡(luò)中的有效時(shí)間.

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

           2, resolver_timeout 

            設(shè)置DNS服務(wù)器域名解析超時(shí)時(shí)間

            語法結(jié)構(gòu): resolver_timeout  time;

           3, proxy_pass

            設(shè)置代理服務(wù)器的協(xié)議和地址,可以用于反向代理服務(wù)

            proxy_pass URL

                  URL  為設(shè)置的代理服務(wù)器協(xié)議和地址

        反向代理基本指令

            1,  proxy_pass

            設(shè)置代理服務(wù)器的協(xié)議和地址

            proxy_pass URL

                  URL  為設(shè)置的代理服務(wù)器協(xié)議和地址

            使用這個(gè)指令時(shí)要注意:

            如果指令URL中變量不含有URI轉(zhuǎn)向地址會(huì)只改變URL

            如果指令URL中變量含有URI轉(zhuǎn)向地址會(huì)全部改變

             

            如果配置指令url后面帶有/ 那么跳轉(zhuǎn)同理

            2, proxy_hide_header 指令

            用于設(shè)置Nginx服務(wù)器發(fā)送http相應(yīng)時(shí),隱藏一些頭域信息

              proxy_hide_header field;

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

            3,proxy_pass_header 指令

              默認(rèn)Nginx 服務(wù)器在發(fā)送響應(yīng)報(bào)文時(shí),報(bào)文不包含 date server X-accel 等來自被代理服務(wù)器的頭域信息,

              該指令可以設(shè)置這些頭域信息已被發(fā)送

              proxy_pass_header filed;

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

            4, proxy_pass_request_body

              配置是否將客戶端請(qǐng)求體發(fā)送給代理服務(wù)器

              proxy_pass_request_body on | off  可以用于 http  server  localtion

            5,proxy_pass_request_header 

              配置是否將客戶端的請(qǐng)求頭發(fā)送給代理服務(wù)器

              proxy_pass_request_header 可以用于 http  server  localtion

            6, proxy_set_header

              用于更改Nginx服務(wù)器接收到的客戶端請(qǐng)求的請(qǐng)求頭,然后將新的請(qǐng)求頭發(fā)送給被代理服務(wù)器

              proxy_set_header filed value

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

              value  更改的值

            7, proxy_set_body

              更改Nginx服務(wù)器接收到的客戶端請(qǐng)求的請(qǐng)求體信息,然后將新的請(qǐng)求體發(fā)送給被代理的服務(wù)器 

              proxy_set_body value 

              value 為更改的信息

            8, proxy_bind 

              強(qiáng)制將與代理主機(jī)的連接綁定到指定的ip主機(jī)

              proxy_bind address 

              address 為IP地址

            9, proxy_connect_timout

              用于配置Nginx服務(wù)器與后端被代理服務(wù)器嘗試連接的超時(shí)時(shí)間

              proxy_connect_timout time 默認(rèn)時(shí)間時(shí)60秒

            10, proxy_read_timeout

              用于配置Nginx服務(wù)器向后端被代理服務(wù)器(組)發(fā)出read請(qǐng)求后,等待響應(yīng)的超時(shí)時(shí)間

              proxy_read_timeout time; 默認(rèn)時(shí)間時(shí)60秒

            11, proxy_send_timeout

                 用于配置Nginx服務(wù)器向后端被代理服務(wù)器(組)發(fā)出write請(qǐng)求后,等待響應(yīng)的超時(shí)時(shí)間

              proxy_send_timeout time;默認(rèn)時(shí)間時(shí)60秒

            12, proxy_http_version

              用于設(shè)置Nginx服務(wù)器提供代理服務(wù)器的HTTP協(xié)議版本

              proxy_http_version 1.0 | 1.1 |2.0

            13, proxy_method

              用于設(shè)置Nginx服務(wù)器請(qǐng)求貝代理服務(wù)器使用的請(qǐng)求方法,設(shè)置了這個(gè)客戶端的請(qǐng)求方法將會(huì)被忽略

              proxy_method method

              method 設(shè)置 POST | GET

             14 proxy_ignore_client_abort

              用于設(shè)置在客戶端中斷網(wǎng)絡(luò)請(qǐng)求的時(shí)候,Nginx服務(wù)器是否中斷對(duì)被代理服務(wù)器的請(qǐng)求,

              proxy_ignore_client_abort on | off 

             15, proxy_ignore_headers

              用于設(shè)置一些HTTP相應(yīng)頭的頭域,

              proxy_ignore_headers filed … 

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

             16, proxy_redirect

              用于修改被代理服務(wù)器返回的相應(yīng)頭中的location和Refresh 與 proxy_pass指令配合使用

              語法結(jié)構(gòu):

                proxy_redirect   redirect replacement

                proxy_redirect   default

                proxy_redirect off

                         redirect  匹配localtion頭域值的字符串

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

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

                  proxy_redirect http://csdn123.com

        nginx會(huì)將host及port部分替換成自身的server_name及l(fā)isten port。不過這種配置對(duì)server_name有多個(gè)值的情況下支持不好。
        我們可以用nginx內(nèi)部變量來解決這一問題:

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

             17, proxy_intercept_errors

                配置一個(gè)狀態(tài)的開啟或者關(guān)閉

                proxy_intercept_errors on | off

             18, proxy_headers_hash_max_size

                存放HTTP報(bào)文頭的哈希表的容量

                proxy_headers_hash_max_size size; 默認(rèn)大小512

             19, proxy_headers_hash_bucket_size

                Nginx服務(wù)器申請(qǐng)存放HTTP報(bào)文頭的哈希表容量的單位大小

                proxy_headers_hash_max_size 64;

             20, proxy_next_upstream

                如果Nginx定義了 upstream 后端服務(wù)器組,如果組內(nèi)有異常情況,將請(qǐng)求順次交給下一個(gè)組內(nèi)服務(wù)器處理

                proxy_next_upstream status...

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

             21, proxy_ssl_session_reuse

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

                proxy_ssl_session_reuse on | off; 默認(rèn)on

         

        Proxy Buffer 指令詳解:

             22,  proxy_buffering

                用于配置是否啟用或者關(guān)閉proxybuff

                proxy_buffering on | off

        ??    23,  proxy_buffers 

                用于配置接收一次被代理服務(wù)器響應(yīng)數(shù)據(jù)的Proxy Buffer個(gè)數(shù)和每個(gè)Buffer的大小.

                proxy_buffers number size;

                size一般設(shè)置為內(nèi)存頁大小.根據(jù)平臺(tái)的不同,取值可能為4KB或者8KB

                proxy_buffers 8 4KB|8KB;

             24,   proxy_buffer_size

                用于配置從被代理服務(wù)器獲取的第一部分響應(yīng)數(shù)據(jù)的大小,默認(rèn)為4k或者8k,保持與proxy_buffers指令中的size變量相同.

             25.  proxy_busy_buffers_size

                用于限制同時(shí)處于BUSY狀態(tài)的Proxy Buffer的總大小.
          
                proxy_busy_buffers_size size;

                size為設(shè)置處于BUSY狀態(tài)的緩存區(qū)總大小.默認(rèn)為8KB或者16KB.
             26.      proxy_temp_path

                用于配置磁盤上的一個(gè)文件路徑,用于臨時(shí)存放被代理服務(wù)器的大體積響應(yīng)數(shù)據(jù).如果Proxy Buffer被裝滿后,響應(yīng)數(shù)據(jù)仍然沒有被Nginx服務(wù)器完全接收,之后響應(yīng)的數(shù)據(jù)就會(huì)被臨時(shí)存放在該文件中.語法結(jié)構(gòu)為:

                proxy_temp_path path [level1 [level2 [level3]]]

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

            27.   proxy_max_temp_file_size

                用于設(shè)置所有臨時(shí)文件的總大小.

                proxy_max_temp_file_size size;

                默認(rèn)為:1024MB
            28.   proxy_temp_file_write_size

                用于配置同時(shí)寫入臨時(shí)文件的數(shù)據(jù)量的總大小

                proxy_temp_file_write_size size;

                默認(rèn)設(shè)置根據(jù)平臺(tái)的不同,可以為8KB或者16KB,一般與平臺(tái)的內(nèi)存也大小相同.

         

        Proxy Cache  配置指令        

             29,   proxy_cache

                     用于配置一塊公用的內(nèi)存區(qū)域的名稱,該區(qū)域可以存放緩存的索引數(shù)據(jù).這些數(shù)據(jù)在Nginx服務(wù)器啟動(dòng)時(shí)由緩存索引重建進(jìn)程負(fù)責(zé)建立,在Nginx服務(wù)器的整個(gè)運(yùn)行過程中由緩存管理進(jìn)程負(fù)責(zé)定時(shí)檢查過期數(shù)據(jù)、檢索等管理工作.語法結(jié)構(gòu)為:

                   proxy_cache zone | off;

                                zone 設(shè)置用于存放緩存索引的內(nèi)存區(qū)域的名稱
                                off 關(guān)閉proxy_cache功能,默認(rèn)設(shè)置

             30,   proxy_cache_bypass

                   用于配置Nginx在響應(yīng)客戶端時(shí)不從緩存中獲取數(shù)據(jù)的條件.語法結(jié)構(gòu)為:

                   proxy_cache_bypass string …;

                   其中,string為條件變量,支持配置多個(gè),當(dāng)至少有一個(gè)字符串指令不為空或者不等于0時(shí),響應(yīng)數(shù)據(jù)不從緩存中獲取.

           例子:

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

             31,   proxy_cache_key

                     用于配置Nginx服務(wù)器在內(nèi)存中為緩存數(shù)據(jù)建立索引時(shí)使用的關(guān)鍵字.默認(rèn)為:

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

                   用于配置開啟鎖功能以后鎖的超時(shí)時(shí)間.默認(rèn)為5s.
            33,     proxy_cache_in_uses

                   當(dāng)客戶端向被代理的服務(wù)器發(fā)送相同的請(qǐng)求達(dá)到該指令設(shè)定的次數(shù)后,Nginx服務(wù)器才對(duì)該其更年期的響應(yīng)數(shù)據(jù)做緩存.默認(rèn)為1

            34,    proxy_cache_path

                   用于設(shè)置Nginx服務(wù)器存儲(chǔ)緩存數(shù)據(jù)的路徑以及和緩存索引相關(guān)的內(nèi)容,語法結(jié)構(gòu)為:

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

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

                例子:

                     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

                   指定在那種情況下,當(dāng)被代理的服務(wù)器無法訪問或者訪問錯(cuò)誤等現(xiàn)象時(shí),Nginx服務(wù)器可以使用歷史緩存響應(yīng)客戶端的請(qǐng)求.語法結(jié)構(gòu)為:

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

                   默認(rèn)為off

            36,    proxy_cache_valid

                     該指令可以針對(duì)不能的HTTP響應(yīng)狀態(tài)設(shè)置不同的緩存時(shí)間,語法結(jié)構(gòu)為:

                     proxy_cache_valid [code …] time;

                         code 設(shè)置HTTP響應(yīng)的狀態(tài)碼,可選,默認(rèn)只為響應(yīng)嗎是200 301 302的響應(yīng)數(shù)據(jù)做緩存.可以使用 ‘any’ 表示緩存所有該指令中未設(shè)定的其他響應(yīng)數(shù)據(jù)
                time 緩存時(shí)間
          
               例子:

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

                    第三個(gè)例子表示對(duì)返回狀態(tài)為不是200 301 302的響應(yīng)數(shù)據(jù)緩存10分鐘.
            37   proxy_no_cache
           
        配置在什么情況下不使用cache功能.語法結(jié)構(gòu)為:

                  proxy_no_cache string …;

                其中,string可以是一個(gè)或者多個(gè)變量,當(dāng)string的值不為空或者不為’0’時(shí),不啟用cache功能.
            38     proxy_store

                 配置是否在本地磁盤緩存來自被代理服務(wù)器的響應(yīng)數(shù)據(jù).語法結(jié)構(gòu)為:

            39           proxy_store on | off | string;

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

            40   proxy_store_access

                用于設(shè)置用戶或用戶組對(duì)Proxy Store緩存文件的訪問權(quán)限,語法結(jié)構(gòu)為:

                proxy_store_access users:permissions …;

                           users 可以設(shè)置為user、group或者all
                            permission 設(shè)置方位權(quán)限

                  例子:

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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 97久久超碰成人精品网站| 久久91精品国产91久久小草| www国产精品| 亚洲综合精品网站| 国产精品黄页免费高清在线观看| 精品一区二区三区无码免费视频 | 国产午夜亚洲精品国产成人小说| 国产精品亚洲日韩欧美色窝窝色欲| 欧美午夜精品一区二区三区91| 热99re久久国超精品首页| 日韩人妻精品一区二区三区视频 | 精品无人区一区二区三区| 久久久久亚洲精品天堂久久久久久 | 五月花精品视频在线观看| 久久香蕉超碰97国产精品| 无码精品人妻一区二区三区免费| 国产国拍亚洲精品福利| 亚洲国产精品久久久久婷婷软件| 91精品美女在线| 国产精品污WWW在线观看| 久久久久久国产精品免费无码| 在线亚洲精品自拍| 亚洲一区精品伊人久久伊人| 欧美精品色婷婷五月综合| 精品久久久久久久久久中文字幕| 国产69精品久久久久9999| 日本一区二区三区精品中文字幕| 国产精品99久久久久久人| 国产成人精品日本亚洲网址| 国精品无码一区二区三区在线| 久久精品国产亚洲av水果派| 久久久国产乱子伦精品作者| 久久精品亚洲一区二区三区浴池| 久久久久无码精品国产| 久久亚洲私人国产精品| 精品国产一区二区三区不卡 | 亚洲国产精品无码AAA片| 亚洲精品无码午夜福利中文字幕 | 亚洲欧美日韩国产精品影院| 亚洲国产精品成人网址天堂| 亚洲精品无码成人AAA片|