頁面接口防刷 解決思路一nginx


線上環境 很多接口 如果不做緩存 可能導致有人拿到url  每秒幾萬次的訪問后台程序,導致系統down機.

此處, nginx可以加一層緩存.   

expires起到控制頁面緩存的作用,合理的配置expires可以減少很多服務器的請求
要配置expires,可以在http段中或者server段中或者location段中加入
PS. 可以限制單個接口的訪問

 location ~ ^/user/ {


 
 
 
         
proxy_pass http://user.example.com;
expires 1; //1h //1d //expires max; 部分文件看需要可以永久 }
nginx wiki  http://nginx.org/en/docs/http/ngx_http_core_module.html#location

語法: expires [time|epoch|max|off]

默認值: expires off

作用域: http, server, location

使用本指令可以控制HTTP應答中的“Expires”和“Cache-Control”的頭標,(起到控制頁面緩存的作用)。

可以在time值中使用正數或負數。“Expires”頭標的值將通過當前系統時間加上您設定的 time 值來獲得。

epoch 指定“Expires”的值為 1 January, 1970, 00:00:01 GMT。

max 指定“Expires”的值為 31 December 2037 23:59:59 GMT,“Cache-Control”的值為10年。

-1 指定“Expires”的值為 服務器當前時間 -1s,即永遠過期

“Cache-Control”頭標的值由您指定的時間來決定:

  • 負數:Cache-Control: no-cache
  • 正數或零:Cache-Control: max-age = #, # 為您指定時間的秒數。

"off" 表示不修改“Expires”和“Cache-Control”的值

demo:

控制圖片等過期時間為30天,當然這個時間可以設置的更長。具體視情況而定

比如

location~ \.(gif|jpg|jpeg|png|bmp|ico)$ {

           expires 30d;

       }

控制匹配/resource/或者/mediatorModule/里所有的文件緩存設置到最長時間

比如

      

       location ~ /(resource|mediatorModule)/ {

                root    /opt/demo;

                expires max;

        }

另附其他方案: Nginx限制某個IP同一時間段的訪問次數 nginx webcache配置 http://blog.sina.com.cn/s/blog_664553710100zmxr.html


免責聲明!

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



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