日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

nginx 代理服务指令详解

發(fā)布時間:2023/12/13 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 nginx 代理服务指令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

  

超級形象說明.

  

正向代理指令: 

   1, resolver

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

    resolver address ... [valid = time ]

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

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

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

   2, resolver_timeout

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

    語法結(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é)議和地址

    使用這個指令時要注意:

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

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

     

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

    2, proxy_hide_header 指令

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

      proxy_hide_header field;

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

    3,proxy_pass_header 指令

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

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

      proxy_pass_header filed;

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

    4, proxy_pass_request_body

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

      proxy_pass_request_body on | off 可以用于 http server localtion

    5,proxy_pass_request_header

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

      proxy_pass_request_header 可以用于 http server localtion

    6, proxy_set_header

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

      proxy_set_header filed value

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

      value 更改的值

    7, proxy_set_body

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

      proxy_set_body value

      value 為更改的信息

    8, proxy_bind

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

      proxy_bind address

      address 為IP地址

    9, proxy_connect_timout

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

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

    10, proxy_read_timeout

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

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

    11, proxy_send_timeout

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

      proxy_send_timeout time;默認(rèn)時間時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ù)器請求貝代理服務(wù)器使用的請求方法,設(shè)置了這個客戶端的請求方法將會被忽略

      proxy_method method

      method 設(shè)置 POST | GET

    14 proxy_ignore_client_abort

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

      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的時候,host為csdn123.com,顯然這個信息直接返回給客戶端是不行的,需要nginx做轉(zhuǎn)換,這時可以設(shè)置:

          proxy_redirecthttp://csdn123.com

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

        proxy_redirecthttp://csdn123.comhttp://$host:$server_port

     17,proxy_intercept_errors

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

        proxy_intercept_errors on | off

     18,proxy_headers_hash_max_size

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

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

     19,proxy_headers_hash_bucket_size

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

        proxy_headers_hash_max_size64;

     20,proxy_next_upstream

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

        proxy_next_upstreamstatus...

        status:error,timeout,invalid_header,http_500502503504404,off

     21,proxy_ssl_session_reuse

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

        proxy_ssl_session_reuseon|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個數(shù)和每個Buffer的大小.

        proxy_buffers number size;

        size一般設(shè)置為內(nèi)存頁大小.根據(jù)平臺的不同,取值可能為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

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

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

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

        proxy_temp_path path [level1 [level2 [level3]]]

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

    27.   proxy_max_temp_file_size

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

        proxy_max_temp_file_size size;

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

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

        proxy_temp_file_write_size size;

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

Proxy Cache 配置指令        

     29,   proxy_cache

      用于配置一塊公用的內(nèi)存區(qū)域的名稱,該區(qū)域可以存放緩存的索引數(shù)據(jù).這些數(shù)據(jù)在Nginx服務(wù)器啟動時由緩存索引重建進程負責(zé)建立,在Nginx服務(wù)器的整個運行過程中由緩存管理進程負責(zé)定時檢查過期數(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ù)據(jù)的條件.語法結(jié)構(gòu)為:

     proxy_cache_bypass string ...;

    其中,string為條件變量,支持配置多個,當(dāng)至少有一個字符串指令不為空或者不等于0時,響應(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ù)建立索引時使用的關(guān)鍵字.默認(rèn)為:

       proxy_cache_key $scheme$proxy_host$uri$is_args$args
       proxy_cache_lock

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

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

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

  34,   proxy_cache_path

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

        該指令比較復(fù)雜,一般需要設(shè)置前面3個指令的情形比較多,后面幾個變量與Nginx服務(wù)器緩存索引重建進程以及管理進程性能有關(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ù)器無法訪問或者訪問錯誤等現(xiàn)象時,Nginx服務(wù)器可以使用歷史緩存響應(yīng)客戶端的請求.語法結(jié)構(gòu)為:

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

    默認(rèn)為off

  36,   proxy_cache_valid

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

      proxy_cache_valid

time;

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

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

      第三個例子表示對返回狀態(tài)為不是200 301 302的響應(yīng)數(shù)據(jù)緩存10分鐘.
    37   proxy_no_cache

配置在什么情況下不使用cache功能.語法結(jié)構(gòu)為:

        proxy_no_cache string ...;

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

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

    39 proxy_store on | off | string;

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

    40   proxy_store_access

        用于設(shè)置用戶或用戶組對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;       

總結(jié)

以上是生活随笔為你收集整理的nginx 代理服务指令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。