пятница, 28 октября 2016 г.

Nginx google font cache

Для одного проекта потребовалось кешировать google font на стороне сервера. Это особенно актуально при переходе на hhtp/2

proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=one:16m inactive=7d max_size=1024m;
proxy_temp_path /var/cache/nginx/temp;

server {
        listen 80;
        client_max_body_size 128M;
        server_name bb.local;
        root /home/vyachin/PhpstormProjects/bb-backend-develop/frontend/web;
        index index.php;
        resolver 8.8.8.8 8.8.4.4;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param SERVER_NAME $host;
        }
        location /gfonts/ {
                proxy_pass https://fonts.googleapis.com/;
                proxy_ignore_headers Expires Cache-Control;
                proxy_set_header Accept-Encoding "";
                proxy_set_header Host fonts.googleapis.com;
                proxy_redirect off;

                proxy_cache one;
                proxy_cache_valid 200 301 302 304 5m;
                proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
                proxy_hide_header "Set-Cookie";
                proxy_ignore_headers "Cache-Control" "Expires";
                proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;

                sub_filter_once off;
                sub_filter_types text/css;
                sub_filter 'https://fonts.gstatic.com/' 'http://bb.local/gstatic/';
        }

        location /gstatic/ {
                proxy_pass https://fonts.gstatic.com/;
                proxy_ignore_headers Expires Cache-Control;
                proxy_set_header Accept-Encoding "";
                proxy_set_header Host fonts.gstatic.com;
                proxy_redirect off;

                proxy_cache one;
                proxy_cache_valid 200 301 302 304 5m;
                proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
                proxy_hide_header "Set-Cookie";
                proxy_ignore_headers "Cache-Control" "Expires";
                proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
        }
}

1 комментарий:

  1. Доброго времени суток.
    Что-то не работает.
    Может что-то упустил?

    ОтветитьУдалить