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

線上環境 不少接口 若是不作緩存 可能致使有人拿到url  每秒幾萬次的訪問後臺程序,致使系統down機.

此處, nginx能夠加一層緩存.   html

expires起到控制頁面緩存的做用,合理的配置expires能夠減小不少服務器的請求
要配置expires,能夠在http段中或者server段中或者location段中加入
PS. 能夠限制單個接口的訪問nginx

location ~ ^/user/ {

proxy_pass http://user.example.com;web

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 offurl

做用域: http, server, locationserver

使用本指令能夠控制HTTP應答中的「Expires」和「Cache-Control」的頭標,(起到控制頁面緩存的做用)。htm

能夠在time值中使用正數或負數。「Expires」頭標的值將經過當前系統時間加上您設定的 time 值來得到。blog

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

相關文章
相關標籤/搜索