Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> nginx設置靜態頁面壓縮緩存和過期時間設置

nginx設置靜態頁面壓縮緩存和過期時間設置

日期:2017/2/8 10:12:38      編輯:關於服務器

可以通過nginx對服務器上的靜態資源進行過期時間設置和對資源進行壓縮傳輸來減少服務器的帶寬開銷。

以下是nginx對靜態資源過期時間的設置方法:

 代碼如下  

        location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) {
            root    /var/www/opkeep;
            expires 30d;
        }


上面的配置可以對ico,gif,bmp,jpg,jpeg,swf,js,css,mp3文件進行本地緩存,不用每次訪問都重新從服務器獲取。

壓縮的配置如下:

        gzip  on;
        gzip_min_length  1000;
        gzip_buffers     4 8k;
        gzip_types       text/plain application/x-javascript text/css;


對文本、js和css文件進行壓縮,一般情況下,壓縮後的大小是原始大小的25%,甚至更小。


緩存動態頁面,緩存過期時間

這裡用虛擬機配置了下:

nginx 配置文件內容:

主要是這一句:

proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;

這一句定義一個區域,名字是 Z ,在內存中的空間為10MB ,硬盤中的最大空間為 30G;

 inactive=1m   是,1分鐘之後緩存失效 ,從新從源服務器請求
這裡糾正一下,inactive=1m  如果緩存1分鐘沒人訪問,nginx 會刪除掉這些緩存

/usr/local/nginx/conf/nginx.conf

 

 代碼如下  

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /www/;
     #expires max;

            #proxy_store on;
            #proxy_store_access user:rw group:rw all:rw;
            #proxy_temp_path /www/;
     proxy_cache Z;
     proxy_cache_valid 200 1m;
            #expires max;
            include proxy.conf;
 
            if ( !-e $request_filename) {
            proxy_pass  http://192.168.1.199:45815;
            }
        }
#這裡設置當 訪問 /ajax/目錄下的內容時候,直接從源服務器讀取,主要用於ajax 的訪問請求,要求實時的
        location /ajax/ {

            include proxy.conf;
            if ( !-e $request_filename) {
            proxy_pass  http://192.168.1.199:45815;
            }
        }

        #location ~.*.(jpg|png|jpeg|gif)
        #{
 #    expires max;
        #}

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

/usr/local/nginx/conf/proxy.conf

 

 代碼如下  

proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        Accept-Encoding 'gzip';
client_max_body_size    100m;
client_body_buffer_size 256k;

proxy_connect_timeout   60;
proxy_send_timeout      60;
proxy_read_timeout      60;

proxy_buffer_size       512k;
proxy_buffers           8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;

html 文件可以被緩存,後來就到很多地方去問

Copyright © Windows教程網 All Rights Reserved