Nginx 返回響應過濾響應內容


94 過濾模塊 從下到上順序

 

 

 

server {

  listen 30004;
  server_name shop***s.com.cn;

        location /{
               proxy_pass http://test;
               proxy_hide_header aaa; #啟動某個頭部隱藏 則不會返回給客戶端
               proxy_pass_header server;
               proxy_ignore_headers X-Accel-Limit-Rate;
               proxy_http_version 1.1;
               proxy_set_header Connection "";
               proxy_method POST;
        }

}
upstream test {
        server 192.168.0.51:8890 weight=1 ;

}

上游服務器代碼

 server { listen 8890; location / { add_header aaa 'aaa value'; #這里加了個頭 } } 

測試代碼

[root@3 webserver]# curl sh****s.com.cn:30004 -I
HTTP/1.1 200 OK
Server: openresty/1.13.6.2
Date: Sun, 12 May 2019 03:30:57 GMT
Content-Type: text/html
Content-Length: 612
Connection: keep-alive
Last-Modified: Sat, 23 Mar 2019 08:55:05 GMT
ETag: "5c95f469-264"
aaa: aaa value  //如果我們不隱藏指定頭部則響應給客戶端
Accept-Ranges: bytes

 

ngx_http_proxy_module 模塊

Syntax: proxy_ignore_headers field ...;
Default:
Context: httpserverlocation

 

 

 

功能 :某些行為可能會改變nginx行為,使用proxy_ignore_hreades可以禁止他們生效

可以禁用的頭部:

  1. X-Accel_Redirect : 由上游服務指定nginx內部重定向 控制請求的執行
  2. X-Accel-Limit-Rate: 由上游設置發往客戶端速度限制 等同於limit_rate指令
  3. X-Accel-Buffering:由上游控制是否緩存上游的響應
  4. X-Accel-Charset:由上游控制 Content-Type中的Charset

緩存相關:

  1.   X-Accel-Expires:設置響應在nginx中的緩存時間 單位秒 ;@開頭表示一天內的某時刻
  2.   Expires:控制nginx緩存時間 優先級低於 X-Accel-Expires
  3.   Cache-Control: 控制nginx緩存時間 優先級低於 X-accel-Expires
  4.   Set-Cookie:響應出現Set-Cookie則不緩存  可以通過proxy_ignore_headers 禁止生效
  5.   Vary 響應中出現Vary:* 則不緩存 可以禁止生效

proxy_hide_header 指令是指對於上游響應中的某些頭部,設置不向客戶端轉發 默認不轉發

  1. Date:由nginx_http_header_filter_module過濾模塊填寫,值為nginx發送響應頭部的時間
  2. Server:由nginx_http_header_filter_module過濾模塊填寫 ,值為nginx版本
  3. X-Pad:通常是Apache為避免瀏覽器BUG生成頭部,默認忽略
  4. X-Accel-:用於控制nginx行為的響應,不需要向客戶端轉發
Syntax: proxy_hide_header field;
Default:
Context: httpserverlocation

 

 

 


proxy_pass_header 對於被已經被proxy_hide_header的頭部,設置向上游轉發

Syntax: proxy_pass_header field;
Default:
Context: httpserverlocation

 

 

 

 

proxy_cookie_domain 指令是指修改域名 如:域名是A 則修改成 B

Syntax: proxy_cookie_domain off;
proxy_cookie_domain domain replacement;
Default:
proxy_cookie_domain off;
Context: httpserverlocation

 

 

 

 

 

proxy_cookie_domain localhost example.org; #用於域名替換
Syntax: proxy_cookie_path off;
proxy_cookie_path path replacement;
Default:
proxy_cookie_path off;
Context: httpserverlocation

 

 

 

 

 

proxy_cookie_path off;
proxy_cookie_path /two/ /; #用於uri替換
proxy_cookie_path ~*^/user/([^/]+) /u/$1;

Syntax:proxy_redirect default;
    proxy_redirect off;
    proxy_redirect redirect replacement;
Default:proxy_redirect default;

Context:httpserverlocation

proxy_redirect http://localhost:8000/two/ http://frontend/one/;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM