nginx靜態檔案快取
目的: 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。
實現: nginx proxy_cache可以將使用者的請快取到本地一個目錄,當下一個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔案了。
配置: 開啟配置檔案/etc/nginx/nginx.conf
user www www;
worker_processes 2;
error_log /var/log/nginx/nginx_error.log crit;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 0;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
##cache##
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
##end##
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-JavaScript text/css application/xml;
gzip_disable “MSIE [1-6].”;
log_format access `$remote_addr – $remote_user [$time_local] “$request” `
`$status $body_bytes_sent “$http_referer” `
`”$http_user_agent” $http_x_forwarded_for`;
upstream appserver {
server 192.168.1.251;
}
server {
listen 80 default;
server_name blog.slogra.com;
location ~ .*.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
proxy_pass http://appserver ;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
expires 30d;
}
location ~ .*.(PHP)(.*){
proxy_pass http://appserver ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /var/log/nginx/blog.slogra.com.log;
}
}
紅色部分是配置快取的引數。
說明:
1、http段設定。
proxy_temp_path /home/temp_dir;設定臨時目錄
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;設定快取目錄為二級目錄,共享記憶體區大小,非活動時間,最大容量,注意臨時目錄要跟快取目錄在同一個分割槽。
2、server段設定
請求靜態檔案設定。
proxy_cache cache_one;設定快取共享記憶體區塊,也就是keys_zone名稱。
proxy_cache_valid 200 302 1h;設定http狀態碼為200,302快取時間為1小時。
expires 30d;設定失期時間,為30天
請求動態檔案設定。
proxy_pass http://appserver ;不進行快取,直接轉到後端伺服器。
測試: 當客戶端發起http請求時在伺服器上會產一個快取檔案如
/home/cache/0/b9/8bd841b1c44ee5b91457eb561e44eb90
OK
相關文章
- nginx 只快取靜態檔案Nginx快取
- Nginx下快取靜態檔案(如css js)Nginx快取CSSJS
- 使用nginx快取伺服器上的靜態檔案Nginx快取伺服器
- LNMP–配置靜態檔案快取LNMP快取
- nginx偽靜態檔案Nginx
- 靜態快取快取
- Apache靜態快取配置Apache快取
- IIS7禁用單個靜態檔案的快取配置方法快取
- 03 #### 讀取靜態檔案-圖片
- Sanic 靜態檔案
- Nginx 靜態檔案伺服器搭建及autoindex模組解析Nginx伺服器Index
- Nginx配置靜態檔案服務從入門到精通Nginx
- 百度cdn靜態檔案快取出現520快取
- php生成靜態檔案PHP
- Web靜態資源快取及優化Web快取優化
- SpringBoot static 靜態方法獲取 yml 配置檔案Spring Boot
- nginx代理出現靜態資源讀取不到Nginx
- service worker 對靜態資源進行快取快取
- 工程化——前端靜態資源快取策略前端快取
- Django靜態檔案輸出Django
- 靜態引數檔案配置
- Nginx偽靜態教程Nginx
- thinkphp Nginx偽靜態PHPNginx
- Nginx靜態服務Nginx
- Nginx 代理快取Nginx快取
- 循序漸進nginx(二):反向代理、負載均衡、快取服務、靜態資源訪問Nginx負載快取
- 【Nginx】Nginx部署前端靜態資源Nginx前端
- 前端web:瀏覽器靜態資源快取策略前端Web瀏覽器快取
- Nginx作為動靜分離、快取與負載均衡初探Nginx快取負載
- 7、靜態檔案的載入
- 簡單C#生成靜態及相關讀取模板檔案C#
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- Nginx 部署靜態頁面Nginx
- [Linux] Nginx networking 403 Forbidden 靜態檔案不允許檢視LinuxNginxORB
- Laravel 路由快取檔案清理Laravel路由快取
- FileProvider共享檔案、快取IDE快取
- Nginx 快取引發的跨域慘案Nginx快取跨域
- 系統快取全解析5:檔案快取依賴快取