線上環境 很多接口 如果不做緩存 可能導致有人拿到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